blob: 12cf213968a34e2a91940a98fffe89343bfdf922 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
package main
import (
"context"
"flag"
"io"
"os"
log "github.com/sirupsen/logrus"
glog "gitlab.com/gitlab-org/gitaly/internal/log"
)
type subcmd interface {
Flags(*flag.FlagSet)
Run(ctx context.Context, stdin io.Reader, stdout io.Writer) error
}
var subcommands = map[string]subcmd{
"create": &createSubcommand{},
}
func main() {
glog.Configure(glog.Loggers, "", "")
flags := flag.NewFlagSet("gitaly-backup", flag.ExitOnError)
_ = flags.Parse(os.Args)
if flags.NArg() < 2 {
log.Fatal("missing subcommand")
}
subcmdName := flags.Arg(1)
subcmd, ok := subcommands[subcmdName]
if !ok {
log.Fatalf("unknown subcommand: %q", flags.Arg(1))
}
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 {
log.Fatalf("%s", err)
}
}
|