Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package orusapi
import (
"io"
"os"
flags "github.com/orus-io/go-flags"
)
// GenerateConfigCmd is a command that generates a configuration file
type GenerateConfigCmd struct {
Output string `short:"o" long:"output" default:"-" no-ini:"t" description:"output file"`
parser *flags.Parser
}
// NewGenerateConfigCmd creates a GenerateConfigCmd
func NewGenerateConfigCmd(parser *flags.Parser) *GenerateConfigCmd {
return &GenerateConfigCmd{parser: parser}
}
// Execute write out a configuration file
func (c *GenerateConfigCmd) Execute([]string) (errResult error) {
var out io.Writer
if c.Output == "-" {
out = os.Stdout
} else {
f, err := os.OpenFile(c.Output, os.O_RDWR|os.O_CREATE, 0755)
if err != nil {
return err
}
defer func() {
errResult = f.Close()
}()
out = f
}
fp := flags.NewIniParser(c.parser)
fp.Write(out, flags.IniIncludeDefaults|flags.IniCommentDefaults|flags.IniDefault)
return nil
}