-func configure(logger log.FieldLogger, args []string) (*arvados.Cluster, error) {
- flags := flag.NewFlagSet(args[0], flag.ExitOnError)
-
- dumpConfig := flags.Bool("dump-config", false, "write current configuration to stdout and exit")
- getVersion := flags.Bool("version", false, "Print version information and exit.")
-
- loader := config.NewLoader(os.Stdin, logger)
- loader.SetupFlags(flags)
-
- args = loader.MungeLegacyConfigArgs(logger, args[1:], "-legacy-keepproxy-config")
- flags.Parse(args)
-
- // Print version information if requested
- if *getVersion {
- fmt.Printf("keepproxy %s\n", version)
- return nil, nil
- }
-
- cfg, err := loader.Load()
- if err != nil {
- return nil, err
- }
- cluster, err := cfg.GetCluster("")
- if err != nil {
- return nil, err
- }
-
- if *dumpConfig {
- out, err := yaml.Marshal(cfg)
- if err != nil {
- return nil, err
- }
- if _, err := os.Stdout.Write(out); err != nil {
- return nil, err
- }
- return nil, nil
- }
- return cluster, nil
-}
-
-func main() {
- logger := log.New()
- logger.Formatter = &log.JSONFormatter{
- TimestampFormat: rfc3339NanoFixed,
- }
-
- cluster, err := configure(logger, os.Args)
- if err != nil {
- log.Fatal(err)
- }
- if cluster == nil {
- return
- }
-
- log.Printf("keepproxy %s started", version)
-
- if err := run(logger, cluster); err != nil {
- log.Fatal(err)
- }
-
- log.Println("shutting down")
-}