Skip to content

Commit 77cf135

Browse files
committed
U appimage generation fixes
1 parent bef8762 commit 77cf135

File tree

3 files changed

+26
-8
lines changed

3 files changed

+26
-8
lines changed

src/main/java/io/github/fvarrui/javapackager/packagers/GenerateAppImage.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ protected File doApply(LinuxPackager packager) throws Exception {
4444
String name = packager.getName();
4545
File executable = packager.getExecutable();
4646
File assetsFolder = packager.getAssetsFolder();
47+
File iconFile = packager.getIconFile();
4748

4849
// output AppImage file
4950
File appImage = new File(outputFolder, name + ".AppImage");
@@ -56,18 +57,23 @@ protected File doApply(LinuxPackager packager) throws Exception {
5657
File appImageTool = getAppImageTool(packager);
5758
Logger.info("App image tool found! " + appImageTool);
5859

59-
// copies app folder to assets
60-
FileUtils.copyFolderContentToFolder(appFolder, appDir);
60+
// copies app folder to AppDir/usr/bin
61+
FileUtils.copyFolderContentToFolder(appFolder, new File(appDir, "usr/bin"));
6162

62-
// generates desktop file from velocity template
63+
// generates AppImage desktop file from velocity template
6364
File desktopFile = new File(appDir, name + ".desktop");
64-
VelocityUtils.render("linux/desktop.vtl", desktopFile, packager);
65+
VelocityUtils.render("linux/desktop-appimage.vtl", desktopFile, packager);
6566
Logger.info("Desktop file rendered in " + desktopFile.getAbsolutePath());
6667

6768
// creates AppRun symlink to startup script
6869
Logger.info("Creating AppRun symlink to startup script...");
69-
File appRun = new File(appDir, "AppRun");
70-
FileUtils.createSymlink(appRun, new File(executable.getName()));
70+
File appRun = new File(appDir, "AppRun");
71+
FileUtils.createSymlink(appRun, new File("usr/bin", executable.getName()));
72+
73+
// creates AppRun symlink to startup script
74+
Logger.info("Creating symlink to icon ...");
75+
File appIconFile = new File(appDir, iconFile.getName());
76+
FileUtils.createSymlink(appIconFile, new File("usr/bin", iconFile.getName()));
7177

7278
// runs appimagetool on appFolder
7379
Logger.info("Running appimagetool on " + appFolder);
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[Desktop Entry]
2+
Name=${info.displayName}
3+
GenericName=${info.displayName}
4+
Comment=${info.description}
5+
Exec=${info.name} %U
6+
Icon=${info.name}.png
7+
Terminal=false
8+
Type=Application
9+
StartupNotify=true
10+
#if ($info.isThereFileAssociations())
11+
MimeType=${info.getMimeTypesListAsString(";")}
12+
#end
13+
Categories=Utility

src/main/resources/linux/desktop.vtl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,4 @@ Type=Application
99
StartupNotify=true
1010
#if ($info.isThereFileAssociations())
1111
MimeType=${info.getMimeTypesListAsString(";")}
12-
#end
13-
Categories=Utility
12+
#end

0 commit comments

Comments
 (0)