From a3d6099892eb9c4274fea56726b8ff815dd0481f Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Thu, 6 Apr 2017 19:14:38 +0200 Subject: [PATCH 1/2] Remove short option conflict --- src/cmds/restic/cmd_find.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cmds/restic/cmd_find.go b/src/cmds/restic/cmd_find.go index 5c1893268..e78b14e2d 100644 --- a/src/cmds/restic/cmd_find.go +++ b/src/cmds/restic/cmd_find.go @@ -44,8 +44,8 @@ func init() { cmdRoot.AddCommand(cmdFind) f := cmdFind.Flags() - f.StringVarP(&findOptions.Oldest, "oldest", "o", "", "oldest modification date/time") - f.StringVarP(&findOptions.Newest, "newest", "n", "", "newest modification date/time") + f.StringVarP(&findOptions.Oldest, "oldest", "O", "", "oldest modification date/time") + f.StringVarP(&findOptions.Newest, "newest", "N", "", "newest modification date/time") f.StringSliceVarP(&findOptions.Snapshots, "snapshot", "s", nil, "snapshot `id` to search in (can be given multiple times)") f.BoolVarP(&findOptions.CaseInsensitive, "ignore-case", "i", false, "ignore case for pattern") f.BoolVarP(&findOptions.ListLong, "long", "l", false, "use a long listing format showing size and mode") From 522c7ade91604c5e13a3b8e2084d2092f73dfe3b Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Thu, 6 Apr 2017 19:44:53 +0200 Subject: [PATCH 2/2] Add test for double defined flags --- src/cmds/restic/flags_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/cmds/restic/flags_test.go diff --git a/src/cmds/restic/flags_test.go b/src/cmds/restic/flags_test.go new file mode 100644 index 000000000..3b313b68c --- /dev/null +++ b/src/cmds/restic/flags_test.go @@ -0,0 +1,26 @@ +package main + +import ( + "testing" +) + +// TestFlags checks for double defined flags, the commands will panic on +// ParseFlags() when a shorthand flag is defined twice. +func TestFlags(t *testing.T) { + type FlagParser interface { + ParseFlags([]string) error + } + + for _, cmd := range cmdRoot.Commands() { + t.Run(cmd.Name(), func(t *testing.T) { + err := cmd.ParseFlags([]string{"--help"}) + if err.Error() == "pflag: help requested" { + err = nil + } + + if err != nil { + t.Fatal(err) + } + }) + } +}