github.com/jghiloni/cli@v6.28.1-0.20170628223758-0ce05fe032a2+incompatible/command/flag/environment_variable.go (about) 1 package flag 2 3 import ( 4 "fmt" 5 "os" 6 "strings" 7 8 flags "github.com/jessevdk/go-flags" 9 ) 10 11 type EnvironmentVariable string 12 13 func (_ EnvironmentVariable) Complete(prefix string) []flags.Completion { 14 if prefix == "" || prefix[0] != '$' { 15 return nil 16 } 17 18 keyValPairs := os.Environ() 19 envVars := make([]string, len(keyValPairs)) 20 for i, keyValPair := range keyValPairs { 21 envVars[i] = fmt.Sprintf("$%s", strings.Split(keyValPair, "=")[0]) 22 } 23 24 return completions(envVars, prefix, true) 25 }