"Fossies" - the Fresh Open Source Software Archive

Member "gdrive-2.1.1/cli/flags.go" (28 May 2021, 2963 Bytes) of package /linux/misc/gdrive-2.1.1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Go source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 package cli
    2 
    3 type Flag interface {
    4     GetPatterns() []string
    5     GetName() string
    6     GetDescription() string
    7     GetParser() Parser
    8 }
    9 
   10 func getFlagParser(flags []Flag) Parser {
   11     var parsers []Parser
   12 
   13     for _, flag := range flags {
   14         parsers = append(parsers, flag.GetParser())
   15     }
   16 
   17     return FlagParser{parsers}
   18 }
   19 
   20 type BoolFlag struct {
   21     Patterns     []string
   22     Name         string
   23     Description  string
   24     DefaultValue bool
   25     OmitValue    bool
   26 }
   27 
   28 func (self BoolFlag) GetName() string {
   29     return self.Name
   30 }
   31 
   32 func (self BoolFlag) GetPatterns() []string {
   33     return self.Patterns
   34 }
   35 
   36 func (self BoolFlag) GetDescription() string {
   37     return self.Description
   38 }
   39 
   40 func (self BoolFlag) GetParser() Parser {
   41     var parsers []Parser
   42     for _, p := range self.Patterns {
   43         parsers = append(parsers, BoolFlagParser{
   44             pattern:      p,
   45             key:          self.Name,
   46             omitValue:    self.OmitValue,
   47             defaultValue: self.DefaultValue,
   48         })
   49     }
   50 
   51     if len(parsers) == 1 {
   52         return parsers[0]
   53     }
   54     return ShortCircuitParser{parsers}
   55 }
   56 
   57 type StringFlag struct {
   58     Patterns     []string
   59     Name         string
   60     Description  string
   61     DefaultValue string
   62 }
   63 
   64 func (self StringFlag) GetName() string {
   65     return self.Name
   66 }
   67 
   68 func (self StringFlag) GetPatterns() []string {
   69     return self.Patterns
   70 }
   71 
   72 func (self StringFlag) GetDescription() string {
   73     return self.Description
   74 }
   75 
   76 func (self StringFlag) GetParser() Parser {
   77     var parsers []Parser
   78     for _, p := range self.Patterns {
   79         parsers = append(parsers, StringFlagParser{
   80             pattern:      p,
   81             key:          self.Name,
   82             defaultValue: self.DefaultValue,
   83         })
   84     }
   85 
   86     if len(parsers) == 1 {
   87         return parsers[0]
   88     }
   89     return ShortCircuitParser{parsers}
   90 }
   91 
   92 type IntFlag struct {
   93     Patterns     []string
   94     Name         string
   95     Description  string
   96     DefaultValue int64
   97 }
   98 
   99 func (self IntFlag) GetName() string {
  100     return self.Name
  101 }
  102 
  103 func (self IntFlag) GetPatterns() []string {
  104     return self.Patterns
  105 }
  106 
  107 func (self IntFlag) GetDescription() string {
  108     return self.Description
  109 }
  110 
  111 func (self IntFlag) GetParser() Parser {
  112     var parsers []Parser
  113     for _, p := range self.Patterns {
  114         parsers = append(parsers, IntFlagParser{
  115             pattern:      p,
  116             key:          self.Name,
  117             defaultValue: self.DefaultValue,
  118         })
  119     }
  120 
  121     if len(parsers) == 1 {
  122         return parsers[0]
  123     }
  124     return ShortCircuitParser{parsers}
  125 }
  126 
  127 type StringSliceFlag struct {
  128     Patterns     []string
  129     Name         string
  130     Description  string
  131     DefaultValue []string
  132 }
  133 
  134 func (self StringSliceFlag) GetName() string {
  135     return self.Name
  136 }
  137 
  138 func (self StringSliceFlag) GetPatterns() []string {
  139     return self.Patterns
  140 }
  141 
  142 func (self StringSliceFlag) GetDescription() string {
  143     return self.Description
  144 }
  145 
  146 func (self StringSliceFlag) GetParser() Parser {
  147     var parsers []Parser
  148     for _, p := range self.Patterns {
  149         parsers = append(parsers, StringSliceFlagParser{
  150             pattern:      p,
  151             key:          self.Name,
  152             defaultValue: self.DefaultValue,
  153         })
  154     }
  155 
  156     if len(parsers) == 1 {
  157         return parsers[0]
  158     }
  159     return ShortCircuitParser{parsers}
  160 }