Merge pull request #397 from codegangsta/add-global-boolt

Add context.GlobalBoolT
This commit is contained in:
Dan Buch 2016-05-09 00:51:31 -04:00
commit 8ef3b8f7bb
3 changed files with 33 additions and 0 deletions

View File

@ -5,6 +5,7 @@
## [Unreleased] ## [Unreleased]
### Added ### Added
- Pluggable flag-level help text rendering via `cli.DefaultFlagStringFunc` - Pluggable flag-level help text rendering via `cli.DefaultFlagStringFunc`
- `context.GlobalBoolT` was added as an analogue to `context.GlobalBool`
- Support for hiding commands by setting `Hidden: true` -- this will hide the - Support for hiding commands by setting `Hidden: true` -- this will hide the
commands in help output commands in help output

View File

@ -104,6 +104,14 @@ func (c *Context) GlobalBool(name string) bool {
return false return false
} }
// Looks up the value of a global bool flag, returns true if no bool flag exists
func (c *Context) GlobalBoolT(name string) bool {
if fs := lookupGlobalFlagSet(name, c); fs != nil {
return lookupBoolT(name, fs)
}
return false
}
// Looks up the value of a global string flag, returns "" if no string flag exists // Looks up the value of a global string flag, returns "" if no string flag exists
func (c *Context) GlobalString(name string) string { func (c *Context) GlobalString(name string) string {
if fs := lookupGlobalFlagSet(name, c); fs != nil { if fs := lookupGlobalFlagSet(name, c); fs != nil {

View File

@ -82,6 +82,30 @@ func TestContext_BoolT(t *testing.T) {
expect(t, c.BoolT("myflag"), true) expect(t, c.BoolT("myflag"), true)
} }
func TestContext_GlobalBool(t *testing.T) {
set := flag.NewFlagSet("test", 0)
globalSet := flag.NewFlagSet("test-global", 0)
globalSet.Bool("myflag", false, "doc")
globalCtx := NewContext(nil, globalSet, nil)
c := NewContext(nil, set, globalCtx)
expect(t, c.GlobalBool("myflag"), false)
expect(t, c.GlobalBool("nope"), false)
}
func TestContext_GlobalBoolT(t *testing.T) {
set := flag.NewFlagSet("test", 0)
globalSet := flag.NewFlagSet("test-global", 0)
globalSet.Bool("myflag", true, "doc")
globalCtx := NewContext(nil, globalSet, nil)
c := NewContext(nil, set, globalCtx)
expect(t, c.GlobalBoolT("myflag"), true)
expect(t, c.GlobalBoolT("nope"), false)
}
func TestContext_Args(t *testing.T) { func TestContext_Args(t *testing.T) {
set := flag.NewFlagSet("test", 0) set := flag.NewFlagSet("test", 0)
set.Bool("myflag", false, "doc") set.Bool("myflag", false, "doc")