Skip to content

Commit 3820288

Browse files
authored
Fix parsing of os-release (#77)
1 parent b5ef5f9 commit 3820288

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

app/inventory/system_linux.go

+15-12
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,13 @@ func (systemInfo *SystemInfo) gatherNetworkInfo() error {
188188
return nil
189189
}
190190

191+
const defaultPlatformInfo = "unknown"
192+
191193
// parseOSRelease extracts flavor and os_version information from os-release file.
192194
func (systemInfo *SystemInfo) parseOSRelease() error {
193195
// Set defaults to unknown
194-
systemInfo.Flavor = "unknown"
195-
systemInfo.OSVersion = "unknown"
196+
systemInfo.Flavor = defaultPlatformInfo
197+
systemInfo.OSVersion = defaultPlatformInfo
196198

197199
data, err := utils.ParseEnvFile("/etc/os-release")
198200

@@ -209,24 +211,25 @@ func (systemInfo *SystemInfo) parseOSRelease() error {
209211
return nil
210212
}
211213

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"]))
220215

221216
if _, ok := data["VERSION"]; ok {
222-
223217
idUppercaseFirst := []rune(data["ID"])
224218
idUppercaseFirst[0] = unicode.ToUpper(idUppercaseFirst[0])
225219
systemInfo.OSVersion = fmt.Sprintf("%s %s", string(idUppercaseFirst), data["VERSION"])
220+
}
221+
222+
if _, ok := data["VERSION_ID"]; !ok {
226223
return nil
227224
}
228225

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+
}
230233
return nil
231234
}
232235

0 commit comments

Comments
 (0)