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  }