diff --git a/cmd/gomtree/main.go b/cmd/gomtree/main.go index 08f5aa0..cb2f96b 100644 --- a/cmd/gomtree/main.go +++ b/cmd/gomtree/main.go @@ -27,7 +27,7 @@ func main() { Aliases: []string{"c"}, Usage: "Create a directory hierarchy spec", }, - &cli.StringFlag{ + &cli.StringSliceFlag{ Name: "file", Aliases: []string{"f"}, Usage: "Directory hierarchy spec to validate", @@ -182,9 +182,9 @@ func mainApp(c *cli.Context) error { ) // -f - if c.String("file") != "" && !c.Bool("create") { + if len(c.StringSlice("file")) > 0 && !c.Bool("create") { // load the hierarchy, if we're not creating a new spec - fh, err := os.Open(c.String("file")) + fh, err := os.Open(c.StringSlice("file")[0]) if err != nil { return err } @@ -206,21 +206,25 @@ func mainApp(c *cli.Context) error { } if c.String("result-format") == "json" { - // if they're asking for json, give it to them - data := map[string][]mtree.Keyword{c.String("file"): specKeywords} - buf, err := json.MarshalIndent(data, "", " ") - if err != nil { - return err - } - fmt.Println(string(buf)) - } else { - fmt.Printf("Keywords used in [%s]:\n", c.String("file")) - for _, kw := range specKeywords { - fmt.Printf(" %s", kw) - if _, ok := mtree.KeywordFuncs[kw]; !ok { - fmt.Print(" (unsupported)") + for _, file := range c.StringSlice("file") { + // if they're asking for json, give it to them + data := map[string][]mtree.Keyword{file: specKeywords} + buf, err := json.MarshalIndent(data, "", " ") + if err != nil { + return err + } + fmt.Println(string(buf)) + } + } else { + for _, file := range c.StringSlice("file") { + fmt.Printf("Keywords used in [%s]:\n", file) + for _, kw := range specKeywords { + fmt.Printf(" %s", kw) + if _, ok := mtree.KeywordFuncs[kw]; !ok { + fmt.Print(" (unsupported)") + } + fmt.Printf("\n") } - fmt.Printf("\n") } } return nil @@ -338,8 +342,8 @@ func mainApp(c *cli.Context) error { // -c if c.Bool("create") { fh := os.Stdout - if c.String("file") != "" { - fh, err = os.Create(c.String("file")) + if len(c.StringSlice("file")) > 0 { + fh, err = os.Create(c.StringSlice("file")[0]) if err != nil { return err }