From eaa5aecd422bc4f6b01b6257383521ad512e08f7 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sat, 11 Aug 2018 23:25:17 +0200 Subject: [PATCH] cli: add multipleStrings type Will be used for --exclude. --- cli_args.go | 12 ++++++++++++ cli_args_test.go | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/cli_args.go b/cli_args.go index 69e8bdf..1314ed7 100644 --- a/cli_args.go +++ b/cli_args.go @@ -39,6 +39,18 @@ type argContainer struct { _forceOwner *fuse.Owner } +type multipleStrings []string + +func (s *multipleStrings) String() string { + s2 := []string(*s) + return fmt.Sprint(s2) +} + +func (s *multipleStrings) Set(val string) error { + *s = append(*s, val) + return nil +} + var flagSet *flag.FlagSet // prefixOArgs transform options passed via "-o foo,bar" into regular options diff --git a/cli_args_test.go b/cli_args_test.go index dd5dcd1..8e5ae3d 100644 --- a/cli_args_test.go +++ b/cli_args_test.go @@ -77,3 +77,14 @@ func TestPrefixOArgs(t *testing.T) { } } } + +func TestStringSlice(t *testing.T) { + var s multipleStrings + s.Set("foo") + s.Set("bar") + want := "[foo bar]" + have := s.String() + if want != have { + t.Errorf("Wrong string representation: want=%q have=%q", want, have) + } +}