Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var DarwinBundleTask = &packagingTask{ packagingFormatName: "darwin-bundle", templateFiles: map[string]string{ "darwin-bundle/Info.plist.tmpl.tmpl": "{{.projectName}}.app/Contents/Info.plist.tmpl", }, executableFiles: []string{}, buildOutputDirectory: "{{.projectName}}.app/Contents/MacOS", packagingScriptTemplate: "mkdir -p {{.projectName}}.app/Contents/Resources && png2icns {{.projectName}}.app/Contents/Resources/icon.icns {{.projectName}}.app/Contents/MacOS/assets/icon.png", outputFileExtension: "app", outputFileContainsVersion: false, }
DarwinBundleTask packaging for darwin as bundle
View Source
var DarwinDmgTask = &packagingTask{ packagingFormatName: "darwin-dmg", dependsOn: map[*packagingTask]string{ DarwinBundleTask: "dmgdir", }, packagingScriptTemplate: "ln -sf /Applications dmgdir/Applications && genisoimage -V '{{.projectName}}' -D -R -apple -no-pad -o '{{.projectName}}-{{.version}}.dmg' dmgdir", outputFileExtension: "dmg", outputFileContainsVersion: true, skipAssertInitialized: true, }
DarwinDmgTask packaging for darwin as dmg
View Source
var DarwinPkgTask = &packagingTask{ packagingFormatName: "darwin-pkg", dependsOn: map[*packagingTask]string{ DarwinBundleTask: "flat/root/Applications", }, templateFiles: map[string]string{ "darwin-pkg/PackageInfo.tmpl.tmpl": "flat/base.pkg/PackageInfo.tmpl", "darwin-pkg/Distribution.tmpl.tmpl": "flat/Distribution.tmpl", }, packagingScriptTemplate: "(cd flat/root && find . | cpio -o --format odc --owner 0:80 | gzip -c ) > flat/base.pkg/Payload && mkbom -u 0 -g 80 flat/root flat/base.pkg/Bom && (cd flat && xar --compression none -cf '../{{.projectName}}-{{.version}}.pkg' * )", outputFileExtension: "pkg", outputFileContainsVersion: true, }
DarwinPkgTask packaging for darwin as pkg
View Source
var LinuxAppImageTask = &packagingTask{ packagingFormatName: "linux-appimage", templateFiles: map[string]string{ "linux-appimage/AppRun.tmpl": "AppRun", "linux/app.desktop.tmpl": "{{.projectName}}.desktop", }, executableFiles: []string{ "AppRun", "{{.projectName}}.desktop", }, linuxDesktopFileIconPath: "/build/assets/icon", buildOutputDirectory: "build", packagingScriptTemplate: "appimagetool . && mv {{.projectName}}-x86_64.AppImage {{.projectName}}-{{.version}}.AppImage", outputFileExtension: "AppImage", outputFileContainsVersion: true, }
LinuxAppImageTask packaging for linux as AppImage
View Source
var LinuxDebTask = &packagingTask{ packagingFormatName: "linux-deb", templateFiles: map[string]string{ "linux-deb/control.tmpl.tmpl": "DEBIAN/control.tmpl", "linux/bin.tmpl": "usr/bin/{{.projectName}}", "linux/app.desktop.tmpl": "usr/share/applications/{{.projectName}}.desktop", }, executableFiles: []string{ "usr/bin/{{.projectName}}", "usr/share/applications/{{.projectName}}.desktop", }, linuxDesktopFileExecutablePath: "/usr/lib/{{.projectName}}/{{.projectName}}", linuxDesktopFileIconPath: "/usr/lib/{{.projectName}}/assets/icon.png", buildOutputDirectory: "usr/lib/{{.projectName}}", packagingScriptTemplate: "dpkg-deb --build . {{.projectName}}-{{.version}}.deb", outputFileExtension: "deb", outputFileContainsVersion: true, }
LinuxDebTask packaging for linux as deb
View Source
var LinuxPkgTask = &packagingTask{ packagingFormatName: "linux-pkg", templateFiles: map[string]string{ "linux-pkg/PKGBUILD.tmpl.tmpl": "PKGBUILD.tmpl", "linux/bin.tmpl": "src/usr/bin/{{.projectName}}", "linux/app.desktop.tmpl": "src/usr/share/applications/{{.projectName}}.desktop", }, executableFiles: []string{ "src/usr/bin/{{.projectName}}", "src/usr/share/applications/{{.projectName}}.desktop", }, linuxDesktopFileExecutablePath: "/usr/lib/{{.projectName}}/{{.projectName}}", linuxDesktopFileIconPath: "/usr/lib/{{.projectName}}/assets/icon.png", buildOutputDirectory: "src/usr/lib/{{.projectName}}", packagingScriptTemplate: "makepkg && mv {{.projectName}}-{{.version}}-{{.release}}-x86_64.pkg.tar.xz {{.projectName}}-{{.version}}.pkg.tar.xz", outputFileExtension: "pkg.tar.xz", outputFileContainsVersion: true, }
LinuxPkgTask packaging for linux as pacman pkg
View Source
var LinuxRpmTask = &packagingTask{ packagingFormatName: "linux-rpm", templateFiles: map[string]string{ "linux-rpm/app.spec.tmpl.tmpl": "rpmbuild/SPECS/{{.projectName}}.spec.tmpl", "linux/bin.tmpl": "rpmbuild/BUILDROOT/{{.projectName}}{{`-{{.version}}-{{.release}}`}}.x86_64/usr/bin/{{.projectName}}", "linux/app.desktop.tmpl": "rpmbuild/BUILDROOT/{{.projectName}}{{`-{{.version}}-{{.release}}`}}.x86_64/usr/share/applications/{{.projectName}}.desktop", }, executableFiles: []string{ "rpmbuild/BUILDROOT/{{.projectName}}-{{.version}}-{{.release}}.x86_64/usr/bin/{{.projectName}}", "rpmbuild/BUILDROOT/{{.projectName}}-{{.version}}-{{.release}}.x86_64/usr/share/applications/{{.projectName}}.desktop", }, linuxDesktopFileExecutablePath: "/usr/lib/{{.projectName}}/{{.projectName}}", linuxDesktopFileIconPath: "/usr/lib/{{.projectName}}/assets/icon.png", buildOutputDirectory: "rpmbuild/BUILDROOT/{{.projectName}}-{{.version}}-{{.version}}.x86_64/usr/lib/{{.projectName}}", packagingScriptTemplate: "rpmbuild --define '_topdir /app/rpmbuild' -ba /app/rpmbuild/SPECS/{{.projectName}}.spec && rm /root/.rpmdb -r && mv rpmbuild/RPMS/x86_64/{{.projectName}}-{{.version}}-{{.version}}.x86_64.rpm {{.projectName}}-{{.version}}.rpm", outputFileExtension: "rpm", outputFileContainsVersion: true, }
LinuxRpmTask packaging for linux as rpm
View Source
var LinuxSnapTask = &packagingTask{ packagingFormatName: "linux-snap", templateFiles: map[string]string{ "linux-snap/snapcraft.yaml.tmpl.tmpl": "snap/snapcraft.yaml.tmpl", "linux/app.desktop.tmpl": "snap/local/{{.projectName}}.desktop", }, linuxDesktopFileExecutablePath: "/{{.projectName}}", linuxDesktopFileIconPath: "/icon.png", buildOutputDirectory: "build", packagingScriptTemplate: "snapcraft && mv {{.strippedProjectName}}_{{.version}}_{{.arch}}.snap {{.projectName}}-{{.version}}.snap", outputFileExtension: "snap", outputFileContainsVersion: true, }
LinuxSnapTask packaging for linux as snap
View Source
var WindowsMsiTask = &packagingTask{ packagingFormatName: "windows-msi", templateFiles: map[string]string{ "windows-msi/app.wxs.tmpl.tmpl": "{{.projectName}}.wxs.tmpl", }, buildOutputDirectory: "build", packagingScriptTemplate: "convert -resize x16 build/assets/icon.png build/assets/icon.ico && wixl -v {{.projectName}}.wxs && mv {{.projectName}}.msi {{.projectName}}-{{.version}}.msi", outputFileExtension: "msi", outputFileContainsVersion: true, generateBuildFiles: func(projectName, tmpPath string) { directoriesFilePath, err := filepath.Abs(filepath.Join(tmpPath, "directories.wxi")) if err != nil { log.Errorf("Failed to resolve absolute path for directories.wxi file %s: %v", projectName, err) os.Exit(1) } directoriesFile, err := os.Create(directoriesFilePath) if err != nil { log.Errorf("Failed to create directories.wxi file %s: %v", projectName, err) os.Exit(1) } directoryRefsFilePath, err := filepath.Abs(filepath.Join(tmpPath, "directory_refs.wxi")) if err != nil { log.Errorf("Failed to resolve absolute path for directory_refs.wxi file %s: %v", projectName, err) os.Exit(1) } directoryRefsFile, err := os.Create(directoryRefsFilePath) if err != nil { log.Errorf("Failed to create directory_refs.wxi file %s: %v", projectName, err) os.Exit(1) } componentRefsFilePath, err := filepath.Abs(filepath.Join(tmpPath, "component_refs.wxi")) if err != nil { log.Errorf("Failed to resolve absolute path for component_refs.wxi file %s: %v", projectName, err) os.Exit(1) } componentRefsFile, err := os.Create(componentRefsFilePath) if err != nil { log.Errorf("Failed to create component_refs.wxi file %s: %v", projectName, err) os.Exit(1) } directoriesFileContent = append(directoriesFileContent, `<Include>`) directoryRefsFileContent = append(directoryRefsFileContent, `<Include>`) componentRefsFileContent = append(componentRefsFileContent, `<Include>`) windowsMsiProcessFiles(filepath.Join(tmpPath, "build", "flutter_assets")) directoriesFileContent = append(directoriesFileContent, `</Include>`) directoryRefsFileContent = append(directoryRefsFileContent, `</Include>`) componentRefsFileContent = append(componentRefsFileContent, `</Include>`) for _, line := range directoriesFileContent { if _, err := directoriesFile.WriteString(line + "\n"); err != nil { log.Errorf("Could not write directories.wxi: %v", projectName, err) os.Exit(1) } } err = directoriesFile.Close() if err != nil { log.Errorf("Could not close directories.wxi: %v", projectName, err) os.Exit(1) } for _, line := range directoryRefsFileContent { if _, err := directoryRefsFile.WriteString(line + "\n"); err != nil { log.Errorf("Could not write directory_refs.wxi: %v", projectName, err) os.Exit(1) } } err = directoryRefsFile.Close() if err != nil { log.Errorf("Could not close directory_refs.wxi: %v", projectName, err) os.Exit(1) } for _, line := range componentRefsFileContent { if _, err := componentRefsFile.WriteString(line + "\n"); err != nil { log.Errorf("Could not write component_refs.wxi: %v", projectName, err) os.Exit(1) } } err = componentRefsFile.Close() if err != nil { log.Errorf("Could not close component_refs.wxi: %v", projectName, err) os.Exit(1) } }, }
WindowsMsiTask packaging for windows as msi
Functions ¶
This section is empty.
Types ¶
type Task ¶ added in v0.40.0
type Task interface { Name() string Init() IsInitialized() bool AssertInitialized() Pack(buildVersion string) }
Task contains all configuration options for a given packaging method. TODO: Rename to something that suits it more? Mabe Executor?
var NoopTask Task = &noopTask{}
Click to show internal directories.
Click to hide internal directories.