Skip to content

Commit 4b017f1

Browse files
committed
Update GenerateAppImage.java
1 parent 3a49294 commit 4b017f1

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

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

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import io.github.fvarrui.javapackager.utils.CommandUtils;
1010
import io.github.fvarrui.javapackager.utils.FileUtils;
1111
import io.github.fvarrui.javapackager.utils.Logger;
12+
import io.github.fvarrui.javapackager.utils.VelocityUtils;
1213

1314
public class GenerateAppImage extends ArtifactGenerator<LinuxPackager> {
1415

@@ -42,27 +43,37 @@ protected File doApply(LinuxPackager packager) throws Exception {
4243
File outputFolder = packager.getOutputDirectory();
4344
String name = packager.getName();
4445
File executable = packager.getExecutable();
46+
File assetsFolder = packager.getAssetsFolder();
4547

4648
// output AppImage file
4749
File appImage = new File(outputFolder, name + ".AppImage");
4850

49-
// AppRun symlink file
50-
File appRun = new File(appFolder, "AppRun");
51+
// AppDir folder
52+
File appDir = new File(assetsFolder, "AppDir");
5153

5254
// gets/downloads AppImage tool
5355
Logger.info("Getting appimagetool...");
5456
File appImageTool = getAppImageTool(packager);
5557
Logger.info("App image tool found! " + appImageTool);
58+
59+
// copies app folder to assets
60+
FileUtils.copyFolderContentToFolder(appFolder, appDir);
61+
62+
// generates desktop file from velocity template
63+
File desktopFile = new File(appDir, name + ".desktop");
64+
VelocityUtils.render("linux/desktop.vtl", desktopFile, packager);
65+
Logger.info("Desktop file rendered in " + desktopFile.getAbsolutePath());
5666

5767
// creates AppRun symlink to startup script
5868
Logger.info("Creating AppRun symlink to startup script...");
69+
File appRun = new File(appDir, "AppRun");
5970
FileUtils.createSymlink(appRun, new File(executable.getName()));
6071

6172
// runs appimagetool on appFolder
6273
Logger.info("Running appimagetool on " + appFolder);
6374
CommandUtils.execute(
6475
appImageTool,
65-
appFolder,
76+
appDir,
6677
appImage
6778
);
6879

0 commit comments

Comments
 (0)