@@ -188,11 +188,13 @@ func (systemInfo *SystemInfo) gatherNetworkInfo() error {
188
188
return nil
189
189
}
190
190
191
+ const defaultPlatformInfo = "unknown"
192
+
191
193
// parseOSRelease extracts flavor and os_version information from os-release file.
192
194
func (systemInfo * SystemInfo ) parseOSRelease () error {
193
195
// Set defaults to unknown
194
- systemInfo .Flavor = "unknown"
195
- systemInfo .OSVersion = "unknown"
196
+ systemInfo .Flavor = defaultPlatformInfo
197
+ systemInfo .OSVersion = defaultPlatformInfo
196
198
197
199
data , err := utils .ParseEnvFile ("/etc/os-release" )
198
200
@@ -209,24 +211,25 @@ func (systemInfo *SystemInfo) parseOSRelease() error {
209
211
return nil
210
212
}
211
213
212
- if _ , ok := data ["VERSION_ID" ]; ! ok {
213
- return nil
214
- }
215
-
216
- id := canonify (strings .ToLower (data ["ID" ]))
217
- versionID := canonify (data ["VERSION_ID" ])
218
- version := strings .Split (versionID , "_" )
219
- systemInfo .Flavor = fmt .Sprintf ("%s_%s" , id , version [0 ])
214
+ systemInfo .Flavor = canonify (strings .ToLower (data ["ID" ]))
220
215
221
216
if _ , ok := data ["VERSION" ]; ok {
222
-
223
217
idUppercaseFirst := []rune (data ["ID" ])
224
218
idUppercaseFirst [0 ] = unicode .ToUpper (idUppercaseFirst [0 ])
225
219
systemInfo .OSVersion = fmt .Sprintf ("%s %s" , string (idUppercaseFirst ), data ["VERSION" ])
220
+ }
221
+
222
+ if _ , ok := data ["VERSION_ID" ]; ! ok {
226
223
return nil
227
224
}
228
225
229
- systemInfo .OSVersion = fmt .Sprintf ("%s %s" , strings .ToTitle (data ["ID" ]), data ["VERSION_ID" ])
226
+ versionID := canonify (data ["VERSION_ID" ])
227
+ version := strings .Split (versionID , "_" )
228
+ systemInfo .Flavor = fmt .Sprintf ("%s_%s" , systemInfo .Flavor , version [0 ])
229
+
230
+ if systemInfo .OSVersion == defaultPlatformInfo {
231
+ systemInfo .OSVersion = fmt .Sprintf ("%s %s" , strings .ToTitle (data ["ID" ]), data ["VERSION_ID" ])
232
+ }
230
233
return nil
231
234
}
232
235
0 commit comments