|
9 | 9 | import io.github.fvarrui.javapackager.utils.CommandUtils; |
10 | 10 | import io.github.fvarrui.javapackager.utils.FileUtils; |
11 | 11 | import io.github.fvarrui.javapackager.utils.Logger; |
| 12 | +import io.github.fvarrui.javapackager.utils.VelocityUtils; |
12 | 13 |
|
13 | 14 | public class GenerateAppImage extends ArtifactGenerator<LinuxPackager> { |
14 | 15 |
|
@@ -42,27 +43,37 @@ protected File doApply(LinuxPackager packager) throws Exception { |
42 | 43 | File outputFolder = packager.getOutputDirectory(); |
43 | 44 | String name = packager.getName(); |
44 | 45 | File executable = packager.getExecutable(); |
| 46 | + File assetsFolder = packager.getAssetsFolder(); |
45 | 47 |
|
46 | 48 | // output AppImage file |
47 | 49 | File appImage = new File(outputFolder, name + ".AppImage"); |
48 | 50 |
|
49 | | - // AppRun symlink file |
50 | | - File appRun = new File(appFolder, "AppRun"); |
| 51 | + // AppDir folder |
| 52 | + File appDir = new File(assetsFolder, "AppDir"); |
51 | 53 |
|
52 | 54 | // gets/downloads AppImage tool |
53 | 55 | Logger.info("Getting appimagetool..."); |
54 | 56 | File appImageTool = getAppImageTool(packager); |
55 | 57 | 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()); |
56 | 66 |
|
57 | 67 | // creates AppRun symlink to startup script |
58 | 68 | Logger.info("Creating AppRun symlink to startup script..."); |
| 69 | + File appRun = new File(appDir, "AppRun"); |
59 | 70 | FileUtils.createSymlink(appRun, new File(executable.getName())); |
60 | 71 |
|
61 | 72 | // runs appimagetool on appFolder |
62 | 73 | Logger.info("Running appimagetool on " + appFolder); |
63 | 74 | CommandUtils.execute( |
64 | 75 | appImageTool, |
65 | | - appFolder, |
| 76 | + appDir, |
66 | 77 | appImage |
67 | 78 | ); |
68 | 79 |
|
|
0 commit comments