| /* |
| Copyright 2014 The Kubernetes Authors. |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */ |
| |
| package flag |
| |
| import ( |
| "fmt" |
| "sort" |
| "strings" |
| ) |
| |
| type ConfigurationMap map[string]string |
| |
| func (m *ConfigurationMap) String() string { |
| pairs := []string{} |
| for k, v := range *m { |
| pairs = append(pairs, fmt.Sprintf("%s=%s", k, v)) |
| } |
| sort.Strings(pairs) |
| return strings.Join(pairs, ",") |
| } |
| |
| func (m *ConfigurationMap) Set(value string) error { |
| for _, s := range strings.Split(value, ",") { |
| if len(s) == 0 { |
| continue |
| } |
| arr := strings.SplitN(s, "=", 2) |
| if len(arr) == 2 { |
| (*m)[strings.TrimSpace(arr[0])] = strings.TrimSpace(arr[1]) |
| } else { |
| (*m)[strings.TrimSpace(arr[0])] = "" |
| } |
| } |
| return nil |
| } |
| |
| func (*ConfigurationMap) Type() string { |
| return "mapStringString" |
| } |