JMS #3: Passing a context struct instead of a string

main
Jeremy Saenz 11 years ago
parent 598fb195c2
commit 96f806fd22

@ -21,18 +21,19 @@ var Flags []Flag
var Action = ShowHelp
func Run(args []string) {
context := Context{}
if len(args) > 1 {
name := args[1]
for _, c := range append(Commands, HelpCommand) {
if c.Name == name || c.ShortName == name {
c.Action(name)
c.Action(context)
return
}
}
}
// Run default Action
Action("")
Action(context)
}
type Command struct {
@ -44,4 +45,7 @@ type Command struct {
Flags flag.FlagSet
}
type Handler func(name string)
type Context struct {
}
type Handler func(context Context)

@ -22,7 +22,7 @@ func init() {
HelpCommand.Action = ShowHelp
}
func ShowHelp(name string) {
func ShowHelp(c Context) {
helpTemplate := `NAME:
{{.Name}} - {{.Usage}}
@ -44,7 +44,7 @@ GLOBAL OPTIONS
Usage,
Version,
append(Commands, HelpCommand),
Flags,
Flags,
}
w := tabwriter.NewWriter(os.Stdout, 0, 8, 1, '\t', 0)

Loading…
Cancel
Save