in src/main/java/org/apache/netbeans/nbpackage/deb/DebTask.java [227:246]
private void setupDesktopFile(Path share, String exec, String pkgName) throws IOException {
String template = DebPackager.DESKTOP_TEMPLATE.load(context());
Map<String, String> tokens = Map.of("EXEC", exec, "ICON", pkgName);
String desktop = StringUtils.replaceTokens(template,
key -> {
var ret = tokens.get(key);
if (ret != null) {
return ret;
} else {
return context().tokenReplacementFor(key);
}
});
Path desktopDir = share.resolve("applications");
Files.createDirectories(desktopDir);
String desktopFileName = context().getValue(DebPackager.DESKTOP_FILENAME)
.map(name -> sanitize(name))
.orElse(pkgName);
Path desktopFile = desktopDir.resolve(desktopFileName + ".desktop");
Files.writeString(desktopFile, desktop, StandardOpenOption.CREATE_NEW);
}