github.com/jerryclinesmith/packer@v0.3.7/common/command/flag_slice_value.go (about)

     1  package command
     2  
     3  import "strings"
     4  
     5  // AppendSliceValue implements the flag.Value interface and allows multiple
     6  // calls to the same variable to append a list.
     7  type AppendSliceValue []string
     8  
     9  func (s *AppendSliceValue) String() string {
    10  	return strings.Join(*s, ",")
    11  }
    12  
    13  func (s *AppendSliceValue) Set(value string) error {
    14  	if *s == nil {
    15  		*s = make([]string, 0, 1)
    16  	}
    17  
    18  	*s = append(*s, value)
    19  	return nil
    20  }
    21  
    22  // SliceValue implements the flag.Value interface and allows a list of
    23  // strings to be given on the command line and properly parsed into a slice
    24  // of strings internally.
    25  type SliceValue []string
    26  
    27  func (s *SliceValue) String() string {
    28  	return strings.Join(*s, ",")
    29  }
    30  
    31  func (s *SliceValue) Set(value string) error {
    32  	*s = strings.Split(value, ",")
    33  	return nil
    34  }