...
1
16
17 package flag
18
19 import (
20 "fmt"
21 "sort"
22 "strings"
23 )
24
25 type ConfigurationMap map[string]string
26
27 func (m *ConfigurationMap) String() string {
28 pairs := []string{}
29 for k, v := range *m {
30 pairs = append(pairs, fmt.Sprintf("%s=%s", k, v))
31 }
32 sort.Strings(pairs)
33 return strings.Join(pairs, ",")
34 }
35
36 func (m *ConfigurationMap) Set(value string) error {
37 for _, s := range strings.Split(value, ",") {
38 if len(s) == 0 {
39 continue
40 }
41 arr := strings.SplitN(s, "=", 2)
42 if len(arr) == 2 {
43 (*m)[strings.TrimSpace(arr[0])] = strings.TrimSpace(arr[1])
44 } else {
45 (*m)[strings.TrimSpace(arr[0])] = ""
46 }
47 }
48 return nil
49 }
50
51 func (*ConfigurationMap) Type() string {
52 return "mapStringString"
53 }
54
View as plain text