diff options
| author | Petter Rasmussen | 2016-01-18 23:03:44 +0100 | 
|---|---|---|
| committer | Petter Rasmussen | 2016-01-18 23:03:44 +0100 | 
| commit | 44aa7407f6bdbc5157104969ef275cd5e51a99af (patch) | |
| tree | f5fcf386febc68b8b3d8ef1e2362a6c5b5193252 /cli/flags.go | |
| parent | 2be43fe18545ba6c35ee344b9880d48a18afe878 (diff) | |
| download | gdrive-44aa7407f6bdbc5157104969ef275cd5e51a99af.tar.bz2 | |
Add StringSliceFlag and StringSliceParser
Diffstat (limited to 'cli/flags.go')
| -rw-r--r-- | cli/flags.go | 41 | 
1 files changed, 38 insertions, 3 deletions
| diff --git a/cli/flags.go b/cli/flags.go index 6fcc435..6c82ed7 100644 --- a/cli/flags.go +++ b/cli/flags.go @@ -27,7 +27,7 @@ type BoolFlag struct {  }  func (self BoolFlag) GetName() string { -    return self.Name     +    return self.Name  }  func (self BoolFlag) GetPatterns() []string { @@ -64,7 +64,7 @@ type StringFlag struct {  }  func (self StringFlag) GetName() string { -    return self.Name     +    return self.Name  }  func (self StringFlag) GetPatterns() []string { @@ -99,7 +99,7 @@ type IntFlag struct {  }  func (self IntFlag) GetName() string { -    return self.Name     +    return self.Name  }  func (self IntFlag) GetPatterns() []string { @@ -125,3 +125,38 @@ func (self IntFlag) GetParser() Parser {      }      return ShortCircuitParser{parsers}  } + +type StringSliceFlag struct { +    Patterns []string +    Name string +    Description string +    DefaultValue []string +} + +func (self StringSliceFlag) GetName() string { +    return self.Name +} + +func (self StringSliceFlag) GetPatterns() []string { +    return self.Patterns +} + +func (self StringSliceFlag) GetDescription() string { +    return self.Description +} + +func (self StringSliceFlag) GetParser() Parser { +    var parsers []Parser +    for _, p := range self.Patterns { +        parsers = append(parsers, StringSliceFlagParser{ +            pattern: p, +            key: self.Name, +            defaultValue: self.DefaultValue, +        }) +    } + +    if len(parsers) == 1 { +        return parsers[0] +    } +    return ShortCircuitParser{parsers} +} | 
