@@ -233,12 +233,31 @@ FF_MAYBE_UNUSED static bool detectDebianDerived(FFOSResult* result)
233
233
}
234
234
else if (ffStrbufContainS (& instance .state .platform .sysinfo .release , "+rpt-rpi-" ))
235
235
{
236
- // Raspberry Pi OS
237
- ffStrbufSetS (& result -> id , "raspbian" );
238
236
ffStrbufSetS (& result -> idLike , "debian" );
239
- ffStrbufSetS (& result -> name , "Raspberry Pi OS" );
240
- ffStrbufSetS (& result -> prettyName , "Raspberry Pi OS" );
241
- return true;
237
+ if (ffPathExists ("/boot/dietpi/.version" , FF_PATHTYPE_FILE ))
238
+ {
239
+ // DietPi
240
+ ffStrbufSetS (& result -> id , "dietpi" );
241
+ ffStrbufSetS (& result -> name , "DietPi" );
242
+ ffStrbufClear (& result -> version );
243
+ FF_STRBUF_AUTO_DESTROY sub = ffStrbufCreate ();
244
+ FF_STRBUF_AUTO_DESTROY rc = ffStrbufCreate ();
245
+ if (ffParsePropFileValues ("/boot/dietpi/.version" , 3 , (FFpropquery []) {
246
+ {"G_DIETPI_VERSION_CORE=" , & result -> version },
247
+ {"G_DIETPI_VERSION_SUB=" , & sub },
248
+ {"G_DIETPI_VERSION_RC=" , & rc },
249
+ })) ffStrbufAppendF (& result -> version , ".%s.%s" , sub .chars , rc .chars );
250
+ ffStrbufSet (& result -> versionID , & result -> version );
251
+ ffStrbufSetF (& result -> prettyName , "DietPi %s" , result -> version .chars );
252
+ }
253
+ else
254
+ {
255
+ // Raspberry Pi OS
256
+ ffStrbufSetS (& result -> id , "raspbian" );
257
+ ffStrbufSetS (& result -> name , "Raspberry Pi OS" );
258
+ ffStrbufSetS (& result -> prettyName , "Raspberry Pi OS" );
259
+ return true;
260
+ }
242
261
}
243
262
else if (ffStrbufEndsWithS (& instance .state .platform .sysinfo .release , "+truenas" ))
244
263
{
0 commit comments