github.com/telepresenceio/telepresence/v2@v2.20.0-pro.6.0.20240517030216-236ea954e789/pkg/client/cli/flags/map.go (about)

     1  package flags
     2  
     3  import (
     4  	"github.com/spf13/pflag"
     5  
     6  	"github.com/telepresenceio/telepresence/v2/pkg/slice"
     7  )
     8  
     9  // Map returns a map of the flags that has been modified in the given FlagSet.
    10  func Map(flags *pflag.FlagSet) map[string]string {
    11  	if flags == nil {
    12  		return nil
    13  	}
    14  	flagMap := make(map[string]string, flags.NFlag())
    15  	flags.VisitAll(func(flag *pflag.Flag) {
    16  		if flag.Changed {
    17  			var v string
    18  			if sv, ok := flag.Value.(pflag.SliceValue); ok {
    19  				v = slice.AsCSV(sv.GetSlice())
    20  			} else {
    21  				v = flag.Value.String()
    22  			}
    23  			flagMap[flag.Name] = v
    24  		}
    25  	})
    26  	return flagMap
    27  }