Merge pull request #98 from jmervine/master

Exposing 'VersionPrinter'
This commit is contained in:
Jeremy Saenz 2014-08-10 14:42:28 -07:00
commit 687db20fc3
3 changed files with 40 additions and 12 deletions

View File

@ -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()

View File

@ -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 {
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 {
command := cli.Command{
Name: "test-cmd",
ShortName: "tc",
Usage: "this is for testing",
Description: "testing",
Action: func(_ *cli.Context) { },
Action: func(_ *cli.Context) {},
SkipFlagParsing: true,
}
err := command.Run(c)

View File

@ -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)
}