diff --git a/app_test.go b/app_test.go index d4216fe..81d1174 100644 --- a/app_test.go +++ b/app_test.go @@ -350,6 +350,26 @@ func TestAppHelpPrinter(t *testing.T) { } } +func TestAppVersionPrinter(t *testing.T) { + oldPrinter := cli.VersionPrinter + defer func() { + cli.VersionPrinter = oldPrinter + }() + + var wasCalled = false + cli.VersionPrinter = func(c *cli.Context) { + wasCalled = true + } + + app := cli.NewApp() + ctx := cli.NewContext(app, nil, nil) + cli.ShowVersion(ctx) + + if wasCalled == false { + t.Errorf("Version printer expected to be called, but was not") + } +} + func TestAppCommandNotFound(t *testing.T) { beforeRun, subcommandRun := false, false app := cli.NewApp() diff --git a/command_test.go b/command_test.go index 3afd83e..c0f556a 100644 --- a/command_test.go +++ b/command_test.go @@ -2,8 +2,9 @@ package cli_test import ( "flag" - "github.com/codegangsta/cli" "testing" + + "github.com/codegangsta/cli" ) func TestCommandDoNotIgnoreFlags(t *testing.T) { @@ -14,12 +15,12 @@ func TestCommandDoNotIgnoreFlags(t *testing.T) { c := cli.NewContext(app, set, set) - command := cli.Command { - Name: "test-cmd", - ShortName: "tc", - Usage: "this is for testing", + command := cli.Command{ + Name: "test-cmd", + ShortName: "tc", + Usage: "this is for testing", Description: "testing", - Action: func(_ *cli.Context) { }, + Action: func(_ *cli.Context) {}, } err := command.Run(c) @@ -34,12 +35,12 @@ func TestCommandIgnoreFlags(t *testing.T) { c := cli.NewContext(app, set, set) - command := cli.Command { - Name: "test-cmd", - ShortName: "tc", - Usage: "this is for testing", - Description: "testing", - Action: func(_ *cli.Context) { }, + command := cli.Command{ + Name: "test-cmd", + ShortName: "tc", + Usage: "this is for testing", + Description: "testing", + Action: func(_ *cli.Context) {}, SkipFlagParsing: true, } err := command.Run(c) diff --git a/help.go b/help.go index 17440de..5020cb6 100644 --- a/help.go +++ b/help.go @@ -96,6 +96,9 @@ var helpSubcommand = Command{ // Prints help for the App var HelpPrinter = printHelp +// Prints version for the App +var VersionPrinter = printVersion + func ShowAppHelp(c *Context) { HelpPrinter(AppHelpTemplate, c.App) } @@ -133,6 +136,10 @@ func ShowSubcommandHelp(c *Context) { // Prints the version number of the App func ShowVersion(c *Context) { + VersionPrinter(c) +} + +func printVersion(c *Context) { fmt.Printf("%v version %v\n", c.App.Name, c.App.Version) }