From: Tom Clegg Date: Fri, 27 Jan 2017 20:28:36 +0000 (-0500) Subject: 10690: De-duplicate dumpConfig. X-Git-Tag: 1.1.0~446^2~2 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/436f5c768dbc97135490b6477efd1ff0482a9dda?ds=sidebyside 10690: De-duplicate dumpConfig. --- diff --git a/sdk/go/config/dump.go b/sdk/go/config/dump.go new file mode 100644 index 0000000000..30dbb8a317 --- /dev/null +++ b/sdk/go/config/dump.go @@ -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) +} diff --git a/services/arv-git-httpd/main.go b/services/arv-git-httpd/main.go index 3ff155714c..5b6ae61b51 100644 --- a/services/arv-git-httpd/main.go +++ b/services/arv-git-httpd/main.go @@ -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{} diff --git a/services/crunch-dispatch-slurm/crunch-dispatch-slurm.go b/services/crunch-dispatch-slurm/crunch-dispatch-slurm.go index b62b24bc86..f1f5d1e6b8 100644 --- a/services/crunch-dispatch-slurm/crunch-dispatch-slurm.go +++ b/services/crunch-dispatch-slurm/crunch-dispatch-slurm.go @@ -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() diff --git a/services/keep-balance/main.go b/services/keep-balance/main.go index 926a0f2da3..7d734cfad5 100644 --- a/services/keep-balance/main.go +++ b/services/keep-balance/main.go @@ -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 { diff --git a/services/keep-web/main.go b/services/keep-web/main.go index cd55355c7c..5f4cb50904 100644 --- a/services/keep-web/main.go +++ b/services/keep-web/main.go @@ -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) diff --git a/services/keepproxy/keepproxy.go b/services/keepproxy/keepproxy.go index 2376284e1b..76a8a1551f 100644 --- a/services/keepproxy/keepproxy.go +++ b/services/keepproxy/keepproxy.go @@ -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) diff --git a/services/keepstore/keepstore.go b/services/keepstore/keepstore.go index 5414795971..9033de8117 100644 --- a/services/keepstore/keepstore.go +++ b/services/keepstore/keepstore.go @@ -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()