|
|
|
@ -17,8 +17,6 @@ type Context struct {
|
|
|
|
|
globalSet *flag.FlagSet
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type Args []string
|
|
|
|
|
|
|
|
|
|
// Creates a new context. For use in when invoking an App or Command action.
|
|
|
|
|
func NewContext(app *App, set *flag.FlagSet, globalSet *flag.FlagSet) *Context {
|
|
|
|
|
return &Context{app, set, globalSet}
|
|
|
|
@ -74,12 +72,41 @@ func (c *Context) GlobalIntSlice(name string) []int {
|
|
|
|
|
return lookupIntSlice(name, c.globalSet)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type Args []string
|
|
|
|
|
|
|
|
|
|
// Returns the command line arguments associated with the context.
|
|
|
|
|
func (c *Context) Args() Args {
|
|
|
|
|
args := Args(c.flagSet.Args())
|
|
|
|
|
return args
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Returns the nth argument, or else a blank string
|
|
|
|
|
func (a Args) Get(n int) string {
|
|
|
|
|
if len(a) > n {
|
|
|
|
|
return a[n]
|
|
|
|
|
}
|
|
|
|
|
return ""
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Returns the first argument, or else a blank string
|
|
|
|
|
func (a Args) First() string {
|
|
|
|
|
return a.Get(0)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Return the rest of the arguments (not the first one)
|
|
|
|
|
// or else an empty string slice
|
|
|
|
|
func (a Args) Tail() []string {
|
|
|
|
|
if len(a) >= 2 {
|
|
|
|
|
return []string(a)[1:]
|
|
|
|
|
}
|
|
|
|
|
return []string{}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Checks if there are any arguments present
|
|
|
|
|
func (a Args) Present() bool {
|
|
|
|
|
return len(a) != 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func lookupInt(name string, set *flag.FlagSet) int {
|
|
|
|
|
f := set.Lookup(name)
|
|
|
|
|
if f != nil {
|
|
|
|
@ -165,30 +192,3 @@ func normalizeFlags(flags []Flag, set *flag.FlagSet) error {
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Returns the nth argument, or else a blank string
|
|
|
|
|
func (a Args) Get(n int) string {
|
|
|
|
|
if len(a) > n {
|
|
|
|
|
return a[n]
|
|
|
|
|
}
|
|
|
|
|
return ""
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Returns the first argument, or else a blank string
|
|
|
|
|
func (a Args) First() string {
|
|
|
|
|
return a.Get(0)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Return the rest of the arguments (not the first one)
|
|
|
|
|
// or else an empty string slice
|
|
|
|
|
func (a Args) Tail() []string {
|
|
|
|
|
if len(a) >= 2 {
|
|
|
|
|
return []string(a)[1:]
|
|
|
|
|
}
|
|
|
|
|
return []string{}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Checks if there are any arguments present
|
|
|
|
|
func (a Args) Present() bool {
|
|
|
|
|
return len(a) != 0
|
|
|
|
|
}
|
|
|
|
|