10690: De-duplicate dumpConfig.
authorTom Clegg <tom@curoverse.com>
Fri, 27 Jan 2017 20:28:36 +0000 (15:28 -0500)
committerTom Clegg <tom@curoverse.com>
Fri, 27 Jan 2017 22:04:03 +0000 (17:04 -0500)
sdk/go/config/dump.go [new file with mode: 0644]
services/arv-git-httpd/main.go
services/crunch-dispatch-slurm/crunch-dispatch-slurm.go
services/keep-balance/main.go
services/keep-web/main.go
services/keepproxy/keepproxy.go
services/keepstore/keepstore.go

diff --git a/sdk/go/config/dump.go b/sdk/go/config/dump.go
new file mode 100644 (file)
index 0000000..30dbb8a
--- /dev/null
@@ -0,0 +1,25 @@
+package config
+
+import (
+       "os"
+
+       "github.com/ghodss/yaml"
+)
+
+// DumpAndExit writes the given config to stdout as YAML. If an error
+// occurs, that error is returned. Otherwise, the program exits 0.
+//
+// Example:
+//
+//     log.Fatal(DumpAndExit(cfg))
+func DumpAndExit(cfg interface{}) error {
+       y, err := yaml.Marshal(cfg)
+       if err != nil {
+               return err
+       }
+       _, err = os.Stdout.Write(y)
+       if err != nil {
+               return err
+       }
+       os.Exit(0)
+}
index 3ff155714c1b0f2223b13fe30e254782034acc2a..5b6ae61b51e2423db9ebb0a94c861a89d417c7f2 100644 (file)
@@ -10,7 +10,6 @@ import (
        "git.curoverse.com/arvados.git/sdk/go/arvados"
        "git.curoverse.com/arvados.git/sdk/go/config"
        "github.com/coreos/go-systemd/daemon"
-       "github.com/ghodss/yaml"
 )
 
 // Server configuration
@@ -66,12 +65,7 @@ func main() {
        }
 
        if *dumpConfig {
-               y, err := yaml.Marshal(theConfig)
-               if err != nil {
-                       log.Fatal(err)
-               }
-               os.Stdout.Write(y)
-               os.Exit(0)
+               log.Fatal(config.DumpAndExit(theConfig))
        }
 
        srv := &server{}
index b62b24bc867aa41a3e5b57427e35294d501dd6d0..f1f5d1e6b84df0473ffdbe71edb64342cca16d81 100644 (file)
@@ -19,7 +19,6 @@ import (
        "git.curoverse.com/arvados.git/sdk/go/config"
        "git.curoverse.com/arvados.git/sdk/go/dispatch"
        "github.com/coreos/go-systemd/daemon"
-       "github.com/ghodss/yaml"
 )
 
 // Config used by crunch-dispatch-slurm
@@ -96,12 +95,7 @@ func doMain() error {
        }
 
        if *dumpConfig {
-               y, err := yaml.Marshal(theConfig)
-               if err != nil {
-                       log.Fatal(err)
-               }
-               os.Stdout.Write(y)
-               os.Exit(0)
+               log.Fatal(config.DumpAndExit(theConfig))
        }
 
        arv, err := arvadosclient.MakeArvadosClient()
index 926a0f2da341f6fd13780dbc69bc5e088c95e032..7d734cfad56f088f2375725fbe8c360297bbb2e4 100644 (file)
@@ -11,7 +11,6 @@ import (
 
        "git.curoverse.com/arvados.git/sdk/go/arvados"
        "git.curoverse.com/arvados.git/sdk/go/config"
-       "github.com/ghodss/yaml"
 )
 
 const defaultConfigPath = "/etc/arvados/keep-balance/keep-balance.yml"
@@ -91,12 +90,7 @@ func main() {
        }
 
        if *dumpConfig {
-               y, err := yaml.Marshal(config)
-               if err != nil {
-                       log.Fatal(err)
-               }
-               os.Stdout.Write(y)
-               os.Exit(0)
+               log.Fatal(config.DumpAndExit(theConfig))
        }
 
        if *debugFlag {
index cd55355c7ca184439c9eb66a86ad3c55f0bf00b2..5f4cb5090468708ce02d34ec5f74d9baf80720a5 100644 (file)
@@ -8,7 +8,6 @@ import (
        "git.curoverse.com/arvados.git/sdk/go/arvados"
        "git.curoverse.com/arvados.git/sdk/go/config"
        "github.com/coreos/go-systemd/daemon"
-       "github.com/ghodss/yaml"
 )
 
 var (
@@ -82,12 +81,7 @@ func main() {
        }
 
        if *dumpConfig {
-               y, err := yaml.Marshal(cfg)
-               if err != nil {
-                       log.Fatal(err)
-               }
-               os.Stdout.Write(y)
-               os.Exit(0)
+               log.Fatal(config.DumpAndExit(cfg))
        }
 
        os.Setenv("ARVADOS_API_HOST", cfg.Client.APIHost)
index 2376284e1bc495542663dac94067ea0de12dba26..76a8a1551fb867f5258221f1f22692656039d97a 100644 (file)
@@ -85,12 +85,7 @@ func main() {
        }
 
        if *dumpConfig {
-               y, err := yaml.Marshal(cfg)
-               if err != nil {
-                       log.Fatal(err)
-               }
-               os.Stdout.Write(y)
-               os.Exit(0)
+               log.Fatal(config.DumpAndExit(cfg))
        }
 
        arv, err := arvadosclient.New(&cfg.Client)
index 54147959719183141a8e3137d5d1363ec9667e6b..9033de811775f776499b61f5347545dd42775cc0 100644 (file)
@@ -16,7 +16,6 @@ import (
        "git.curoverse.com/arvados.git/sdk/go/keepclient"
        log "github.com/Sirupsen/logrus"
        "github.com/coreos/go-systemd/daemon"
-       "github.com/ghodss/yaml"
 )
 
 // A Keep "block" is 64MB.
@@ -105,12 +104,7 @@ func main() {
        }
 
        if *dumpConfig {
-               y, err := yaml.Marshal(theConfig)
-               if err != nil {
-                       log.Fatal(err)
-               }
-               os.Stdout.Write(y)
-               os.Exit(0)
+               log.Fatal(config.DumpAndExit(theConfig))
        }
 
        err = theConfig.Start()