import (
"bytes"
+ "flag"
"fmt"
"io"
"io/ioutil"
"os"
"os/exec"
+ "git.curoverse.com/arvados.git/sdk/go/arvados"
"git.curoverse.com/arvados.git/sdk/go/ctxlog"
"github.com/ghodss/yaml"
)
fmt.Fprintf(stderr, "%s\n", err)
}
}()
- if len(args) != 0 {
- err = fmt.Errorf("usage: %s <config-src.yaml >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
}
fmt.Fprintf(stderr, "%s\n", err)
}
}()
- if len(args) != 0 {
- err = fmt.Errorf("usage: %s <config-src.yaml && echo 'no changes needed'", 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 := &plainLogger{w: stderr}
- buf, err := ioutil.ReadAll(stdin)
+ var buf []byte
+ if *configFile == "-" {
+ buf, err = ioutil.ReadAll(stdin)
+ } else {
+ buf, err = ioutil.ReadFile(*configFile)
+ }
if err != nil {
return 1
}