From 49ca4b9e9d96d35f704216bda401cc20cd972ca8 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Wed, 12 Jun 2019 16:27:07 -0400 Subject: [PATCH] 15003: Load config from default location or -config arg, not stdin. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- lib/config/cmd.go | 43 ++++++++++++++++++++++++++++++++++++------ lib/config/cmd_test.go | 14 +++++++------- lib/config/load.go | 8 ++++++++ 3 files changed, 52 insertions(+), 13 deletions(-) diff --git a/lib/config/cmd.go b/lib/config/cmd.go index 41a1d7d214..858bfc2b26 100644 --- a/lib/config/cmd.go +++ b/lib/config/cmd.go @@ -6,6 +6,7 @@ package config import ( "bytes" + "flag" "fmt" "io" "io/ioutil" @@ -13,6 +14,7 @@ import ( "os/exec" "git.curoverse.com/arvados.git/lib/cmd" + "git.curoverse.com/arvados.git/sdk/go/arvados" "git.curoverse.com/arvados.git/sdk/go/ctxlog" "github.com/ghodss/yaml" ) @@ -28,12 +30,24 @@ func (dumpCommand) RunCommand(prog string, args []string, stdin io.Reader, stdou fmt.Fprintf(stderr, "%s\n", err) } }() - if len(args) != 0 { - err = fmt.Errorf("usage: %s config-min.yaml", prog) + + flags := flag.NewFlagSet("", flag.ContinueOnError) + flags.SetOutput(stderr) + configFile := flags.String("config", arvados.DefaultConfigFile, "Site configuration `file`") + err = flags.Parse(args) + if err == flag.ErrHelp { + err = nil + return 0 + } else if err != nil { + return 2 + } + + if len(flags.Args()) != 0 { + flags.Usage() return 2 } log := ctxlog.New(stderr, "text", "info") - cfg, err := Load(stdin, log) + cfg, err := loadFileOrStdin(*configFile, stdin, log) if err != nil { return 1 } @@ -59,12 +73,29 @@ func (checkCommand) RunCommand(prog string, args []string, stdin io.Reader, stdo fmt.Fprintf(stderr, "%s\n", err) } }() - if len(args) != 0 { - err = fmt.Errorf("usage: %s