Skip to content

Commit 9b1e318

Browse files
committed
OS (Linux): sets code name for Ubuntu
1 parent e292bf1 commit 9b1e318

File tree

1 file changed

+23
-25
lines changed

1 file changed

+23
-25
lines changed

src/detection/os/os_linux.c

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -59,30 +59,32 @@ FF_MAYBE_UNUSED static bool detectArmbianVersion(FFOSResult* result)
5959
return true;
6060
}
6161

62-
FF_MAYBE_UNUSED static void getUbuntuFlavour(FFOSResult* result)
62+
// Returns false if PrettyName should be updated by caller
63+
FF_MAYBE_UNUSED static bool getUbuntuFlavour(FFOSResult* result)
6364
{
6465
if (detectArmbianVersion(result))
65-
return;
66+
return true;
6667
else if(ffStrbufStartsWithS(&result->prettyName, "Linux Lite "))
6768
{
6869
ffStrbufSetStatic(&result->name, "Linux Lite");
6970
ffStrbufSetStatic(&result->id, "linuxlite");
7071
ffStrbufSetStatic(&result->idLike, "ubuntu");
7172
ffStrbufSetS(&result->versionID, result->prettyName.chars + strlen("Linux Lite "));
72-
return;
73+
return true;
7374
}
7475
else if(ffStrbufStartsWithS(&result->prettyName, "Rhino Linux "))
7576
{
7677
ffStrbufSetStatic(&result->name, "Rhino Linux");
7778
ffStrbufSetStatic(&result->id, "rhinolinux");
7879
ffStrbufSetStatic(&result->idLike, "ubuntu");
7980
ffStrbufSetS(&result->versionID, result->prettyName.chars + strlen("Rhino Linux "));
80-
return;
81+
return true;
8182
}
8283
else if(ffStrbufStartsWithS(&result->prettyName, "VanillaOS "))
8384
{
8485
ffStrbufSetStatic(&result->id, "vanilla");
8586
ffStrbufSetStatic(&result->idLike, "ubuntu");
87+
return true;
8688
}
8789

8890
if (ffPathExists("/usr/bin/lliurex-version", FF_PATHTYPE_FILE))
@@ -97,93 +99,86 @@ FF_MAYBE_UNUSED static void getUbuntuFlavour(FFOSResult* result)
9799
ffStrbufTrimRightSpace(&result->version);
98100
ffStrbufSetF(&result->prettyName, "LliureX %s", result->version.chars);
99101
ffStrbufSetStatic(&result->idLike, "ubuntu");
100-
return;
102+
return true;
101103
}
102104

103105
const char* xdgConfigDirs = getenv("XDG_CONFIG_DIRS");
104106
if(!ffStrSet(xdgConfigDirs))
105-
return;
107+
return false;
106108

107109
if(ffStrContains(xdgConfigDirs, "kde") || ffStrContains(xdgConfigDirs, "plasma") || ffStrContains(xdgConfigDirs, "kubuntu"))
108110
{
109111
ffStrbufSetStatic(&result->name, "Kubuntu");
110-
ffStrbufSetF(&result->prettyName, "Kubuntu %s", result->version.chars);
111112
ffStrbufSetStatic(&result->id, "kubuntu");
112113
ffStrbufSetStatic(&result->idLike, "ubuntu");
113-
return;
114+
return false;
114115
}
115116

116117
if(ffStrContains(xdgConfigDirs, "xfce") || ffStrContains(xdgConfigDirs, "xubuntu"))
117118
{
118119
ffStrbufSetStatic(&result->name, "Xubuntu");
119-
ffStrbufSetF(&result->prettyName, "Xubuntu %s", result->version.chars);
120120
ffStrbufSetStatic(&result->id, "xubuntu");
121121
ffStrbufSetStatic(&result->idLike, "ubuntu");
122-
return;
122+
return false;
123123
}
124124

125125
if(ffStrContains(xdgConfigDirs, "lxqt") || ffStrContains(xdgConfigDirs, "lubuntu"))
126126
{
127127
ffStrbufSetStatic(&result->name, "Lubuntu");
128-
ffStrbufSetF(&result->prettyName, "Lubuntu %s", result->version.chars);
129128
ffStrbufSetStatic(&result->id, "lubuntu");
130129
ffStrbufSetStatic(&result->idLike, "ubuntu");
131-
return;
130+
return false;
132131
}
133132

134133
if(ffStrContains(xdgConfigDirs, "budgie"))
135134
{
136135
ffStrbufSetStatic(&result->name, "Ubuntu Budgie");
137-
ffStrbufSetF(&result->prettyName, "Ubuntu Budgie %s", result->version.chars);
138136
ffStrbufSetStatic(&result->id, "ubuntu-budgie");
139137
ffStrbufSetStatic(&result->idLike, "ubuntu");
140-
return;
138+
return false;
141139
}
142140

143141
if(ffStrContains(xdgConfigDirs, "cinnamon"))
144142
{
145143
ffStrbufSetStatic(&result->name, "Ubuntu Cinnamon");
146-
ffStrbufSetF(&result->prettyName, "Ubuntu Cinnamon %s", result->version.chars);
147144
ffStrbufSetStatic(&result->id, "ubuntu-cinnamon");
148145
ffStrbufSetStatic(&result->idLike, "ubuntu");
149-
return;
146+
return false;
150147
}
151148

152149
if(ffStrContains(xdgConfigDirs, "mate"))
153150
{
154151
ffStrbufSetStatic(&result->name, "Ubuntu MATE");
155-
ffStrbufSetF(&result->prettyName, "Ubuntu MATE %s", result->version.chars);
156152
ffStrbufSetStatic(&result->id, "ubuntu-mate");
157153
ffStrbufSetStatic(&result->idLike, "ubuntu");
158-
return;
154+
return false;
159155
}
160156

161157
if(ffStrContains(xdgConfigDirs, "studio"))
162158
{
163159
ffStrbufSetStatic(&result->name, "Ubuntu Studio");
164-
ffStrbufSetF(&result->prettyName, "Ubuntu Studio %s", result->version.chars);
165160
ffStrbufSetStatic(&result->id, "ubuntu-studio");
166161
ffStrbufSetStatic(&result->idLike, "ubuntu");
167-
return;
162+
return false;
168163
}
169164

170165
if(ffStrContains(xdgConfigDirs, "sway"))
171166
{
172167
ffStrbufSetStatic(&result->name, "Ubuntu Sway");
173-
ffStrbufSetF(&result->prettyName, "Ubuntu Sway %s", result->version.chars);
174168
ffStrbufSetStatic(&result->id, "ubuntu-sway");
175169
ffStrbufSetStatic(&result->idLike, "ubuntu");
176-
return;
170+
return false;
177171
}
178172

179173
if(ffStrContains(xdgConfigDirs, "touch"))
180174
{
181175
ffStrbufSetStatic(&result->name, "Ubuntu Touch");
182-
ffStrbufSetF(&result->prettyName, "Ubuntu Touch %s", result->version.chars);
183176
ffStrbufSetStatic(&result->id, "ubuntu-touch");
184177
ffStrbufSetStatic(&result->idLike, "ubuntu");
185-
return;
178+
return false;
186179
}
180+
181+
return false;
187182
}
188183

189184
FF_MAYBE_UNUSED static void getDebianVersion(FFOSResult* result)
@@ -374,7 +369,10 @@ void ffDetectOSImpl(FFOSResult* os)
374369

375370
#if __linux__ || __GNU__
376371
if(ffStrbufEqualS(&os->id, "ubuntu"))
377-
getUbuntuFlavour(os);
372+
{
373+
if (!getUbuntuFlavour(os))
374+
ffStrbufSetF(&os->prettyName, "%s %s", os->name.chars, os->version.chars); // os->version contains code name
375+
}
378376
else if(ffStrbufEqualS(&os->id, "debian"))
379377
{
380378
if (!detectDebianDerived(os))

0 commit comments

Comments
 (0)