github.com/tonkpils/snag@v1.2.1-0.20160221223445-7f8829737a1d/flags.go (about)

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"fmt"
     6  	"os"
     7  )
     8  
     9  var (
    10  	cliCmds argSlice
    11  	version bool
    12  	verbose bool
    13  )
    14  
    15  func init() {
    16  	flag.Var(&cliCmds, "c", "List of commands to execute")
    17  	flag.BoolVar(&verbose, "v", false, "Verbose output")
    18  	flag.BoolVar(&version, "version", false, "[DEPRECATED: use 'snag version'] display snag's version")
    19  
    20  	flag.Usage = func() {
    21  		usage := `Usage of %s:
    22      %s [COMMAND]
    23  
    24  Commands:
    25  
    26      init    	Generate a snag file %q used for configuration and execution
    27      version 	Display snag's version
    28  
    29  Flags:
    30  `
    31  		fmt.Fprintf(os.Stderr, usage, os.Args[0], os.Args[0], SnagFile)
    32  		flag.PrintDefaults()
    33  	}
    34  }
    35  
    36  type argSlice []string
    37  
    38  func (c *argSlice) String() string {
    39  	return fmt.Sprintf("%s", *c)
    40  }
    41  
    42  func (a *argSlice) Set(value string) error {
    43  	*a = append(*a, value)
    44  	return nil
    45  }