Skip to content

Commit fda16c1

Browse files
committed
U categories property for linux desktop files
1 parent 3f3671e commit fda16c1

File tree

5 files changed

+35
-16
lines changed

5 files changed

+35
-16
lines changed

docs/linux-specific-properties.md

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,23 @@
22

33
```xml
44
<linuxConfig>
5-
<pngFile>path/to/icon.png</pngFile>
6-
<generateDeb>true|false</generateDeb>
7-
<generateRpm>true|false</generateRpm>
5+
<pngFile>path/to/icon.png</pngFile>
6+
<generateAppImage>true|false</generateAppImage>
7+
<generateDeb>true|false</generateDeb>
8+
<generateRpm>true|false</generateRpm>
89
<wrapJar>true|false</wrapJar>
10+
<categories>
11+
<category>Utility</category>
12+
...
13+
</categories>
914
</linuxConfig>
1015
```
1116

12-
13-
14-
| Property | Mandatory | Default value | Description |
15-
| ------------- | --------- | ------------- | ----------------------------------------------- |
16-
| `pngFile` | :x: | `null` | Icon file. |
17-
| `generateDeb` | :x: | `true` | DEB package will be generated. |
18-
| `generateRpm` | :x: | `true` | RPM package will be generated. |
19-
| `wrapJar` | :x: | `true` | Wraps JAR file inside the executable if `true`. |
17+
| Property | Mandatory | Default value | Description |
18+
| ------------------ | --------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------- |
19+
| `pngFile` | :x: | `null` | Icon file. |
20+
| `generateAppImage` | :x: | `true` | [AppImage](https://appimage.org/) package will be generated. |
21+
| `generateDeb` | :x: | `true` | DEB package will be generated. |
22+
| `generateRpm` | :x: | `true` | RPM package will be generated. |
23+
| `wrapJar` | :x: | `true` | Wraps JAR file inside the executable if `true`. |
24+
| `categories` | :x: | `[ "Utility"]` | [Main categories](https://specifications.freedesktop.org/menu-spec/latest/apa.html) in the application's desktop entry file. |

src/main/java/io/github/fvarrui/javapackager/model/LinuxConfig.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import java.io.File;
44
import java.io.Serializable;
5+
import java.util.Arrays;
6+
import java.util.List;
57

68
import io.github.fvarrui.javapackager.packagers.Packager;
79

@@ -11,11 +13,20 @@
1113
public class LinuxConfig implements Serializable {
1214
private static final long serialVersionUID = -1238166997019141904L;
1315

16+
private List<String> categories;
1417
private boolean generateDeb = true;
1518
private boolean generateRpm = true;
1619
private boolean generateAppImage = true;
1720
private File pngFile;
1821
private boolean wrapJar = true;
22+
23+
public void setCategories(List<String> categories) {
24+
this.categories = categories;
25+
}
26+
27+
public List<String> getCategories() {
28+
return categories;
29+
}
1930

2031
public boolean isGenerateDeb() {
2132
return generateDeb;
@@ -59,8 +70,8 @@ public void setWrapJar(boolean wrapJar) {
5970

6071
@Override
6172
public String toString() {
62-
return "LinuxConfig [generateDeb=" + generateDeb + ", generateRpm=" + generateRpm + ", generateAppImage="
63-
+ generateAppImage + ", pngFile=" + pngFile + ", wrapJar=" + wrapJar + "]";
73+
return "LinuxConfig [categories=" + categories + ", generateDeb=" + generateDeb + ", generateRpm=" + generateRpm
74+
+ ", generateAppImage=" + generateAppImage + ", pngFile=" + pngFile + ", wrapJar=" + wrapJar + "]";
6475
}
6576

6677
/**
@@ -69,7 +80,7 @@ public String toString() {
6980
* @param packager Packager
7081
*/
7182
public void setDefaults(Packager packager) {
72-
// nothing
83+
this.setCategories((categories == null || categories.isEmpty()) ? Arrays.asList("Utility") : categories);
7384
}
7485

7586
}

src/main/resources/linux/desktop-appimage.vtl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#set ($categories = $StringUtils.join($info.linuxConfig.categories, ";"))
12
[Desktop Entry]
23
Name=${info.displayName}
34
GenericName=${info.displayName}
@@ -10,4 +11,4 @@ StartupNotify=true
1011
#if ($info.isThereFileAssociations())
1112
MimeType=${info.getMimeTypesListAsString(";")}
1213
#end
13-
Categories=Utility
14+
Categories=${categories}

src/main/resources/linux/desktop.vtl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#set ($categories = $StringUtils.join($info.linuxConfig.categories, ";"))
12
[Desktop Entry]
23
Name=${info.displayName}
34
GenericName=${info.displayName}
@@ -9,4 +10,5 @@ Type=Application
910
StartupNotify=true
1011
#if ($info.isThereFileAssociations())
1112
MimeType=${info.getMimeTypesListAsString(";")}
12-
#end
13+
#end
14+
Categories=${categories}
0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)