@@ -39,7 +39,7 @@ namespace linuxdeploy {
39
39
deployedDesktopFiles.begin (),
40
40
deployedDesktopFiles.end (),
41
41
[&firstDeployedDesktopFileName](const desktopfile::DesktopFile& desktopFile) {
42
- auto fileName = desktopFile.path (). filename (). string () ;
42
+ auto fileName = desktopFile.path ();
43
43
return fileName == firstDeployedDesktopFileName;
44
44
}
45
45
);
@@ -85,4 +85,34 @@ namespace linuxdeploy {
85
85
return false ;
86
86
}
87
87
}
88
+
89
+ bool addDefaultKeys (DesktopFile& desktopFile, const std::string& executableFileName) {
90
+ ldLog () << " Adding default values to desktop file:" << desktopFile.path () << std::endl;
91
+
92
+ auto rv = true ;
93
+
94
+ auto setDefault = [&rv, &desktopFile](const std::string& section, const std::string& key, const std::string& value) {
95
+ if (desktopFile.entryExists (section, key)) {
96
+ DesktopFileEntry entry;
97
+
98
+ // this should never return false
99
+ auto entryExists = desktopFile.getEntry (section, key, entry);
100
+ assert (entryExists);
101
+
102
+ ldLog () << LD_WARNING << " Key exists, not modified:" << key << " (current value:" << entry.value () << LD_NO_SPACE << " )" << std::endl;
103
+ rv = false ;
104
+ } else {
105
+ auto entryOverwritten = desktopFile.setEntry (section, DesktopFileEntry (key, value));
106
+ assert (!entryOverwritten);
107
+ }
108
+ };
109
+
110
+ setDefault (" Desktop Entry" , " Name" , executableFileName);
111
+ setDefault (" Desktop Entry" , " Exec" , executableFileName);
112
+ setDefault (" Desktop Entry" , " Icon" , executableFileName);
113
+ setDefault (" Desktop Entry" , " Type" , " Application" );
114
+ setDefault (" Desktop Entry" , " Categories" , " Utility;" );
115
+
116
+ return rv;
117
+ }
88
118
}
0 commit comments