diff options
author | James Fargher <proglottis@gmail.com> | 2021-04-09 03:34:57 +0300 |
---|---|---|
committer | James Fargher <proglottis@gmail.com> | 2021-04-21 01:37:43 +0300 |
commit | bdcafaa1b61603857e99cda1e990a65c5b739aa4 (patch) | |
tree | febdc45e35a2f8a6b1852a879e20149a87ecc7cc | |
parent | d37033e854ffd97ecf9cd3a114f61a114e49b49d (diff) |
backup: move flagset creation to main
This lets main control if flagset parsing will exit the process or not.
-rw-r--r-- | cmd/gitaly-backup/create.go | 4 | ||||
-rw-r--r-- | cmd/gitaly-backup/create_test.go | 6 | ||||
-rw-r--r-- | cmd/gitaly-backup/main.go | 8 |
3 files changed, 12 insertions, 6 deletions
diff --git a/cmd/gitaly-backup/create.go b/cmd/gitaly-backup/create.go index 129fa6a88..b80ef1cda 100644 --- a/cmd/gitaly-backup/create.go +++ b/cmd/gitaly-backup/create.go @@ -25,10 +25,8 @@ type createSubcommand struct { backupPath string } -func (cmd *createSubcommand) Flags() *flag.FlagSet { - fs := flag.NewFlagSet("create", flag.ExitOnError) +func (cmd *createSubcommand) Flags(fs *flag.FlagSet) { fs.StringVar(&cmd.backupPath, "path", "", "repository backup path") - return fs } func (cmd *createSubcommand) Run(ctx context.Context, stdin io.Reader, stdout io.Writer) error { diff --git a/cmd/gitaly-backup/create_test.go b/cmd/gitaly-backup/create_test.go index ede1b3ed1..467db509e 100644 --- a/cmd/gitaly-backup/create_test.go +++ b/cmd/gitaly-backup/create_test.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "encoding/json" + "flag" "fmt" "io/ioutil" "path/filepath" @@ -46,6 +47,11 @@ func TestCreateSubcommand(t *testing.T) { } cmd := createSubcommand{backupPath: path} + + fs := flag.NewFlagSet("create", flag.ContinueOnError) + cmd.Flags(fs) + + require.NoError(t, fs.Parse([]string{"-path", path})) require.NoError(t, cmd.Run(context.Background(), &stdin, ioutil.Discard)) for _, repo := range repos { diff --git a/cmd/gitaly-backup/main.go b/cmd/gitaly-backup/main.go index d47f5b791..12cf21396 100644 --- a/cmd/gitaly-backup/main.go +++ b/cmd/gitaly-backup/main.go @@ -11,7 +11,7 @@ import ( ) type subcmd interface { - Flags() *flag.FlagSet + Flags(*flag.FlagSet) Run(ctx context.Context, stdin io.Reader, stdout io.Writer) error } @@ -29,12 +29,14 @@ func main() { log.Fatal("missing subcommand") } - subcmd, ok := subcommands[flags.Arg(1)] + subcmdName := flags.Arg(1) + subcmd, ok := subcommands[subcmdName] if !ok { log.Fatalf("unknown subcommand: %q", flags.Arg(1)) } - subcmdFlags := subcmd.Flags() + subcmdFlags := flag.NewFlagSet(subcmdName, flag.ExitOnError) + subcmd.Flags(subcmdFlags) _ = subcmdFlags.Parse(flags.Args()[2:]) if err := subcmd.Run(context.Background(), os.Stdin, os.Stdout); err != nil { |