33 lines
599 B
Go
33 lines
599 B
Go
package utils
|
|
|
|
import "strings"
|
|
|
|
func DecodeHosts(input string) map[string]any {
|
|
result := make(map[string]any)
|
|
pairs := strings.SplitSeq(input, "\n")
|
|
|
|
for pair := range pairs {
|
|
if pair == "" {
|
|
continue
|
|
}
|
|
kv := strings.Split(pair, " ")
|
|
if len(kv) == 2 {
|
|
key := strings.TrimSpace(kv[0])
|
|
value := strings.TrimSpace(kv[1])
|
|
if key != "" {
|
|
result[key] = value
|
|
}
|
|
continue
|
|
}
|
|
if len(kv) != 0 {
|
|
key := strings.TrimSpace(kv[0])
|
|
var value []string
|
|
for i := 1; i < len(kv); i++ {
|
|
value = append(value, kv[i])
|
|
}
|
|
result[key] = value
|
|
}
|
|
}
|
|
return result
|
|
}
|