Skip to content

Commit

Permalink
Version and help check should look for local flags too
Browse files Browse the repository at this point in the history
Now that Global looks up the chain of contexts, the top level should
access the flags without the prefix (i.e. Bool rather than GlobalBool).
  • Loading branch information
jszwedko committed Jun 3, 2015
1 parent 854c521 commit 2272dad
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 2 deletions.
61 changes: 61 additions & 0 deletions app_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -717,3 +717,64 @@ func TestApp_Run_CommandWithSubcommandHasHelpTopic(t *testing.T) {
}
}
}

func TestApp_Run_Help(t *testing.T) {
var helpArguments = [][]string{{"boom", "--help"}, {"boom", "-h"}, {"boom", "help"}}

for _, args := range helpArguments {
buf := new(bytes.Buffer)

t.Logf("==> checking with arguments %v", args)

app := cli.NewApp()
app.Name = "boom"
app.Usage = "make an explosive entrance"
app.Writer = buf
app.Action = func(c *cli.Context) {
buf.WriteString("boom I say!")
}

err := app.Run(args)
if err != nil {
t.Error(err)
}

output := buf.String()
t.Logf("output: %q\n", buf.Bytes())

if !strings.Contains(output, "boom - make an explosive entrance") {
t.Errorf("want help to contain %q, did not: \n%q", "boom - make an explosive entrance", output)
}
}
}

func TestApp_Run_Version(t *testing.T) {
var versionArguments = [][]string{{"boom", "--version"}, {"boom", "-v"}}

for _, args := range versionArguments {
buf := new(bytes.Buffer)

t.Logf("==> checking with arguments %v", args)

app := cli.NewApp()
app.Name = "boom"
app.Usage = "make an explosive entrance"
app.Version = "0.1.0"
app.Writer = buf
app.Action = func(c *cli.Context) {
buf.WriteString("boom I say!")
}

err := app.Run(args)
if err != nil {
t.Error(err)
}

output := buf.String()
t.Logf("output: %q\n", buf.Bytes())

if !strings.Contains(output, "0.1.0") {
t.Errorf("want version to contain %q, did not: \n%q", "0.1.0", output)
}
}
}
4 changes: 2 additions & 2 deletions help.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ func printHelp(out io.Writer, templ string, data interface{}) {
}

func checkVersion(c *Context) bool {
if c.GlobalBool("version") {
if c.GlobalBool("version") || c.GlobalBool("v") || c.Bool("version") || c.Bool("v") {
ShowVersion(c)
return true
}
Expand All @@ -190,7 +190,7 @@ func checkVersion(c *Context) bool {
}

func checkHelp(c *Context) bool {
if c.GlobalBool("h") || c.GlobalBool("help") {
if c.GlobalBool("h") || c.GlobalBool("help") || c.Bool("h") || c.Bool("help") {
ShowAppHelp(c)
return true
}
Expand Down

0 comments on commit 2272dad

Please sign in to comment.