github.com/haagen/force@v0.19.6-0.20140911230915-22addd930b34/command.go (about) 1 package main 2 3 import ( 4 "flag" 5 "fmt" 6 "strings" 7 ) 8 9 var flagEnv string 10 var flagProcfile string 11 12 type Command struct { 13 // args does not include the command name 14 Run func(cmd *Command, args []string) 15 Flag flag.FlagSet 16 17 Usage string // first word is the command name 18 Short string // `forego help` output 19 Long string // `forego help cmd` output 20 } 21 22 func (c *Command) printUsage() { 23 if c.Runnable() { 24 fmt.Printf("Usage: force %s\n\n", c.Usage) 25 } 26 fmt.Println(strings.Trim(c.Long, "\n")) 27 } 28 29 func (c *Command) Name() string { 30 name := c.Usage 31 i := strings.Index(name, " ") 32 if i >= 0 { 33 name = name[:i] 34 } 35 return name 36 } 37 38 func (c *Command) Runnable() bool { 39 return c.Run != nil 40 } 41 42 func (c *Command) List() bool { 43 return c.Short != "" 44 }