aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/spf13/pflag/string_slice.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/spf13/pflag/string_slice.go')
-rw-r--r--vendor/github.com/spf13/pflag/string_slice.go20
1 files changed, 14 insertions, 6 deletions
diff --git a/vendor/github.com/spf13/pflag/string_slice.go b/vendor/github.com/spf13/pflag/string_slice.go
index 927a440..7829cfa 100644
--- a/vendor/github.com/spf13/pflag/string_slice.go
+++ b/vendor/github.com/spf13/pflag/string_slice.go
@@ -31,6 +31,17 @@ func readAsCSV(val string) ([]string, error) {
return csvReader.Read()
}
+func writeAsCSV(vals []string) (string, error) {
+ b := &bytes.Buffer{}
+ w := csv.NewWriter(b)
+ err := w.Write(vals)
+ if err != nil {
+ return "", err
+ }
+ w.Flush()
+ return strings.TrimSuffix(b.String(), fmt.Sprintln()), nil
+}
+
func (s *stringSliceValue) Set(val string) error {
v, err := readAsCSV(val)
if err != nil {
@@ -50,15 +61,12 @@ func (s *stringSliceValue) Type() string {
}
func (s *stringSliceValue) String() string {
- b := &bytes.Buffer{}
- w := csv.NewWriter(b)
- w.Write(*s.value)
- w.Flush()
- return "[" + strings.TrimSuffix(b.String(), fmt.Sprintln()) + "]"
+ str, _ := writeAsCSV(*s.value)
+ return "[" + str + "]"
}
func stringSliceConv(sval string) (interface{}, error) {
- sval = strings.Trim(sval, "[]")
+ sval = sval[1 : len(sval)-1]
// An empty string would cause a slice with one (empty) string
if len(sval) == 0 {
return []string{}, nil