Remove trim flag as its not properly supported by the cli package

This commit is contained in:
Mike Farah 2015-10-03 17:48:54 +10:00
parent 8aa69fc9ba
commit 3a90629822

22
yaml.go
View File

@ -30,13 +30,6 @@ func main() {
}, },
} }
app.Action = readProperty app.Action = readProperty
app.Flags = []cli.Flag{
cli.StringFlag{
Name: "trim, t",
Value: "true",
Usage: "trim output",
},
}
app.Run(os.Args) app.Run(os.Args)
} }
@ -47,13 +40,13 @@ func readProperty(c *cli.Context) {
readYaml(c, &parsedData) readYaml(c, &parsedData)
if len(c.Args()) == 1 { if len(c.Args()) == 1 {
printYaml(parsedData, c.Bool("trim")) printYaml(parsedData)
os.Exit(0) os.Exit(0)
} }
var paths = parsePath(c.Args()[1]) var paths = parsePath(c.Args()[1])
printYaml(readMap(parsedData, paths[0], paths[1:len(paths)]), c.Bool("trim")) printYaml(readMap(parsedData, paths[0], paths[1:len(paths)]))
} }
func writeProperty(c *cli.Context) { func writeProperty(c *cli.Context) {
@ -68,7 +61,7 @@ func writeProperty(c *cli.Context) {
write(parsedData, paths[0], paths[1:len(paths)], getValue(c.Args()[2])) write(parsedData, paths[0], paths[1:len(paths)], getValue(c.Args()[2]))
printYaml(parsedData, c.Bool("trim")) printYaml(parsedData)
} }
func getValue(argument string) interface{} { func getValue(argument string) interface{} {
@ -88,16 +81,15 @@ func getValue(argument string) interface{} {
return argument[1 : len(argument)-1] return argument[1 : len(argument)-1]
} }
func printYaml(context interface{}, trim bool) { func printYaml(context interface{}) {
out, err := yaml.Marshal(context) out, err := yaml.Marshal(context)
if err != nil { if err != nil {
log.Fatalf("error printing yaml: %v", err) log.Fatalf("error printing yaml: %v", err)
} }
outStr := string(out) outStr := string(out)
if trim { // trim the trailing new line as it's easier for a script to add
outStr = strings.Trim(outStr, "\n ") // it in if required than to remove it
} fmt.Println(strings.Trim(outStr, "\n "))
fmt.Println(outStr)
} }
func readYaml(c *cli.Context, parsedData *map[interface{}]interface{}) { func readYaml(c *cli.Context, parsedData *map[interface{}]interface{}) {