github.com/asifdxtreme/cli@v6.1.3-0.20150123051144-9ead8700b4ae+incompatible/cf/flag_helpers/cli_flags.go (about) 1 package flag_helpers 2 3 import ( 4 "fmt" 5 "strings" 6 "unicode/utf8" 7 8 "github.com/codegangsta/cli" 9 ) 10 11 func NewIntFlag(name, usage string) IntFlagWithNoDefault { 12 return IntFlagWithNoDefault{cli.IntFlag{Name: name, Usage: usage}} 13 } 14 15 func NewIntFlagWithValue(name, usage string, value int) IntFlagWithNoDefault { 16 return IntFlagWithNoDefault{cli.IntFlag{Name: name, Value: value, Usage: usage}} 17 } 18 19 func NewStringFlag(name, usage string) StringFlagWithNoDefault { 20 return StringFlagWithNoDefault{cli.StringFlag{Name: name, Usage: usage}} 21 } 22 23 func NewStringSliceFlag(name, usage string) StringSliceFlagWithNoDefault { 24 return StringSliceFlagWithNoDefault{cli.StringSliceFlag{Name: name, Usage: usage, Value: &cli.StringSlice{}}} 25 } 26 27 type IntFlagWithNoDefault struct { 28 cli.IntFlag 29 } 30 31 type StringFlagWithNoDefault struct { 32 cli.StringFlag 33 } 34 35 type StringSliceFlagWithNoDefault struct { 36 cli.StringSliceFlag 37 } 38 39 func (f IntFlagWithNoDefault) String() string { 40 defaultVal := fmt.Sprintf("'%v'", f.Value) 41 return strings.Replace(f.IntFlag.String(), defaultVal, "", 1) 42 } 43 44 func (f StringFlagWithNoDefault) String() string { 45 defaultVal := fmt.Sprintf("'%v'", f.Value) 46 return strings.Replace(f.StringFlag.String(), defaultVal, "", 1) 47 } 48 49 func (f StringSliceFlagWithNoDefault) String() string { 50 return fmt.Sprintf("%s%s \t%s", prefixFor(f.Name), f.Name, f.Usage) 51 } 52 53 func prefixFor(name string) (prefix string) { 54 if utf8.RuneCountInString(name) == 1 { 55 prefix = "-" 56 } else { 57 prefix = "--" 58 } 59 60 return 61 }