Refactor bee CLI and LiveCD integration
This commit is contained in:
43
audit/internal/platform/parse.go
Normal file
43
audit/internal/platform/parse.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package platform
|
||||
|
||||
import "strings"
|
||||
|
||||
func parseLSBLKPairs(line string) map[string]string {
|
||||
out := map[string]string{}
|
||||
for _, part := range splitQuotedFields(line) {
|
||||
idx := strings.Index(part, "=")
|
||||
if idx <= 0 {
|
||||
continue
|
||||
}
|
||||
key := part[:idx]
|
||||
value := strings.Trim(part[idx+1:], `"`)
|
||||
out[key] = value
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func splitQuotedFields(s string) []string {
|
||||
var out []string
|
||||
var cur strings.Builder
|
||||
inQuotes := false
|
||||
for _, r := range s {
|
||||
switch r {
|
||||
case '"':
|
||||
inQuotes = !inQuotes
|
||||
cur.WriteRune(r)
|
||||
case ' ':
|
||||
if inQuotes {
|
||||
cur.WriteRune(r)
|
||||
} else if cur.Len() > 0 {
|
||||
out = append(out, cur.String())
|
||||
cur.Reset()
|
||||
}
|
||||
default:
|
||||
cur.WriteRune(r)
|
||||
}
|
||||
}
|
||||
if cur.Len() > 0 {
|
||||
out = append(out, cur.String())
|
||||
}
|
||||
return out
|
||||
}
|
||||
Reference in New Issue
Block a user