From d205af4abf12bd703bd76368671ed83c5027678a Mon Sep 17 00:00:00 2001 From: Josh Curl Date: Tue, 14 Jun 2016 15:05:12 -0700 Subject: [PATCH] Add --input flag to ros config merge --- cmd/control/config.go | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/cmd/control/config.go b/cmd/control/config.go index 7c4b15c1..01b45b69 100644 --- a/cmd/control/config.go +++ b/cmd/control/config.go @@ -69,6 +69,12 @@ func configSubcommands() []cli.Command { Name: "merge", Usage: "merge configuration from stdin", Action: merge, + Flags: []cli.Flag{ + cli.StringFlag{ + Name: "input, i", + Usage: "File from which to read", + }, + }, }, } } @@ -180,13 +186,23 @@ func configGet(c *cli.Context) error { } func merge(c *cli.Context) error { - bytes, err := ioutil.ReadAll(os.Stdin) + input := os.Stdin + inputFile := c.String("input") + if inputFile != "" { + var err error + input, err = os.Open(inputFile) + if err != nil { + log.Fatal(err) + } + defer input.Close() + } + + bytes, err := ioutil.ReadAll(input) if err != nil { log.Fatal(err) } - err = config.Merge(bytes) - if err != nil { + if err = config.Merge(bytes); err != nil { log.Fatal(err) }