diff --git a/cmd/rednerd/cmd/configfile.go b/cmd/rednerd/cmd/configfile.go index 17d9acf1dbd29a5be521ecb335d05347392c6ddf_Y21kL3JlZG5lcmQvY21kL2NvbmZpZ2ZpbGUuZ28=..81a893c247dff28bf4582e0afcd6ddd414727f6f_Y21kL3JlZG5lcmQvY21kL2NvbmZpZ2ZpbGUuZ28= 100644 --- a/cmd/rednerd/cmd/configfile.go +++ b/cmd/rednerd/cmd/configfile.go @@ -2,9 +2,11 @@ import ( "fmt" + "io" + "os" flags "github.com/orus-io/go-flags" ) // ConfigWrite is a command that generates a configuration file. type ConfigWrite struct { @@ -5,10 +7,10 @@ flags "github.com/orus-io/go-flags" ) // ConfigWrite is a command that generates a configuration file. type ConfigWrite struct { - Output string `short:"o" long:"output" default:"config.ini" no-ini:"t" description:"output file"` + Output string `short:"o" long:"output" default:"-" no-ini:"t" description:"output file"` parser *flags.Parser } @@ -22,7 +24,22 @@ func (c *ConfigWrite) Execute([]string) error { fp := flags.NewIniParser(c.parser) - return fp.WriteFile(c.Output, flags.IniIncludeDefaults|flags.IniCommentDefaults|flags.IniDefault) + var output io.Writer + if c.Output == "-" { + output = os.Stdout + } else { + f, err := os.Create(c.Output) + if err != nil { + return err + } + defer f.Close() + + output = f + } + + fp.Write(output, flags.IniIncludeDefaults|flags.IniCommentDefaults|flags.IniDefault) + + return nil } func parseFile(parser *flags.Parser) func(string) error {