Merge pull request #232 from codegangsta/fix-231
Version and help check should look for local flags too
This commit is contained in:
commit
474704ba13
61
app_test.go
61
app_test.go
@ -718,6 +718,67 @@ 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestApp_Run_DoesNotOverwriteErrorFromBefore(t *testing.T) {
|
func TestApp_Run_DoesNotOverwriteErrorFromBefore(t *testing.T) {
|
||||||
app := cli.NewApp()
|
app := cli.NewApp()
|
||||||
app.Action = func(c *cli.Context) {}
|
app.Action = func(c *cli.Context) {}
|
||||||
|
4
help.go
4
help.go
@ -181,7 +181,7 @@ func printHelp(out io.Writer, templ string, data interface{}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func checkVersion(c *Context) bool {
|
func checkVersion(c *Context) bool {
|
||||||
if c.GlobalBool("version") {
|
if c.GlobalBool("version") || c.GlobalBool("v") || c.Bool("version") || c.Bool("v") {
|
||||||
ShowVersion(c)
|
ShowVersion(c)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -190,7 +190,7 @@ func checkVersion(c *Context) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func checkHelp(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)
|
ShowAppHelp(c)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user