Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Fargher <proglottis@gmail.com>2021-04-09 03:34:57 +0300
committerJames Fargher <proglottis@gmail.com>2021-04-21 01:37:43 +0300
commitbdcafaa1b61603857e99cda1e990a65c5b739aa4 (patch)
treefebdc45e35a2f8a6b1852a879e20149a87ecc7cc
parentd37033e854ffd97ecf9cd3a114f61a114e49b49d (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.go4
-rw-r--r--cmd/gitaly-backup/create_test.go6
-rw-r--r--cmd/gitaly-backup/main.go8
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 {