github.com/tomwright/dasel@v1.27.3/internal/oflag/flags.go (about)

     1  package oflag
     2  
     3  import (
     4  	"fmt"
     5  )
     6  
     7  // StringList is a flag that can collect multiple strings.
     8  type StringList struct {
     9  	Strings []string
    10  }
    11  
    12  // NewStringList returns a new string list flag.
    13  func NewStringList() *StringList {
    14  	return &StringList{
    15  		Strings: []string{},
    16  	}
    17  }
    18  
    19  // Type returns the type of flag.
    20  func (o *StringList) Type() string {
    21  	return "Pass multiple times to add multiple values."
    22  }
    23  
    24  // String returns a string representation of all Override's within the OverrideFlag.
    25  func (o *StringList) String() string {
    26  	return fmt.Sprint(o.Strings)
    27  }
    28  
    29  // Set is used to add a new value to the OverrideFlag.
    30  func (o *StringList) Set(value string) error {
    31  	o.Strings = append(o.Strings, value)
    32  	return nil
    33  }