An AppImage maker implementation for the Electron Forge.
npm install @futpib/maker-appimage@reforged/maker-appimageAn unofficial AppImage target maker for the [Electron Forge][1]. Designed to
manage tasks asynchroniously and synchronize the tasks only when it is required
for them to finish. A part of the [Reforged][2] project.
Please reffer to [Electron Forge documentation][3] if you don't know about
general Electron Forge configuration.
The maker itself should work out-of-the-box, althrough it is recommended to
at least provide the path of the icon and categories. An example relevant part
of Electron Forge's configuration for this maker may look like this:
``jsGenericName
{
name: "@reforged/maker-appimage",
config: {
options: {
// Package name.
name: "example-app",
// Executable name.
bin: "app",
// Human-friendly name of the application.
productName: "Example Electron Application",
// in generated .desktop file.AppImage/AppImageKit
genericName: "Example application",
// Path to application's icon.
icon: "/path/to/icon.png",
// Desktop file to be used instead of the configuration above.
desktopFile: "/path/to/example-app.desktop",
// Release of , either number or "continuous".`
AppImageKitRelease: "continuous",
// Support parsing Arch Linux '*_flags.conf' file.
flagsFile: "true"
}
}
}
You may also import MakerAppImageConfig interface if you wish to verifypackage.json
Electron Forge configuration with TypeScript (when declaring it outside of in JS/TS file) and access JSDoc comments in your editor if it
supports them.
As proposed in [#4][4] and originaly documented in [#4 (comment)][5],
@reforged/maker-appimage supports enviroment variables inspired on@electron/get to use different mirror or CDN providing the files originallyAppImage/AppImageKit
published on GitHub as part of releases:
- APPIMAGEKIT_MIRROR – contains base URL from which files are going to be
downloaded; it should contain protocol and common path on which files
are hosted. Currently, placeholders are resolved here, but this might be
a subject to change.
- APPIMAGEKIT_CUSTOM_DIR – should contain optional name of the directory{{ version }}
in which files should be placed; currently, all placeholders are resolved
here, yet this might be a subject to change – it is guaranteed for
to be applicable here.
- APPIMAGEKIT_CUSTOM_FILENAME – should contain a filename template, used{{ filename }}
for resolving to one of the files which are going to be downloaded by maker;
all placeholders are applicable here and has to be
provided.
- {{ version }} – resolves to AppImageKit version tag, e.g. 13.
- {{ filename }} – resolves to generic name of file being part of AppImageKitruntime
distributables, e.g. or AppRun.
- {{ arch }} – resolves to AppImage target architecture, e.g. x86_64.
- {{ node.arch }} – resolves to Node.js target architecture, e.g. x64`.
[1]: https://github.com/electron/forge
[2]: https://github.com/SpacingBat3/ReForged
[3]: https://www.electronforge.io/configuration
[4]: https://github.com/SpacingBat3/ReForged/issues/4
[5]: https://github.com/SpacingBat3/ReForged/issues/4#issuecomment-1412792436