diff --git a/pkg/kv/split.go b/pkg/kv/split.go new file mode 100644 index 00000000..19e79144 --- /dev/null +++ b/pkg/kv/split.go @@ -0,0 +1,24 @@ +package kv + +import "strings" + +func Split(s, sep string) (string, string) { + parts := strings.SplitN(s, sep, 2) + return strings.TrimSpace(parts[0]), strings.TrimSpace(safeIndex(parts, 1)) +} + +func SplitMap(s, sep string) map[string]string { + result := map[string]string{} + for _, part := range strings.Split(s, sep) { + k, v := Split(part, "=") + result[k] = v + } + return result +} + +func safeIndex(parts []string, idx int) string { + if len(parts) <= idx { + return "" + } + return parts[idx] +}