MCPcopy
hub / github.com/etcd-io/etcd / SetFlagsFromEnv

Function SetFlagsFromEnv

pkg/flags/flag.go:34–48  ·  view source on GitHub ↗

SetFlagsFromEnv parses all registered flags in the given flagset, and if they are not already set it attempts to set their values from environment variables. Environment variables take the name of the flag but are UPPERCASE, have the given prefix and any dashes are replaced by underscores - for exa

(lg *zap.Logger, prefix string, fs *flag.FlagSet)

Source from the content-addressed store, hash-verified

32// are UPPERCASE, have the given prefix and any dashes are replaced by
33// underscores - for example: some-flag => ETCD_SOME_FLAG
34func SetFlagsFromEnv(lg *zap.Logger, prefix string, fs *flag.FlagSet) error {
35 var err error
36 alreadySet := make(map[string]bool)
37 fs.Visit(func(f *flag.Flag) {
38 alreadySet[FlagToEnv(prefix, f.Name)] = true
39 })
40 usedEnvKey := make(map[string]bool)
41 fs.VisitAll(func(f *flag.Flag) {
42 if serr := setFlagFromEnv(lg, fs, prefix, f.Name, usedEnvKey, alreadySet, true); serr != nil {
43 err = serr
44 }
45 })
46 verifyEnv(lg, prefix, usedEnvKey, alreadySet)
47 return err
48}
49
50// SetPflagsFromEnv is similar to SetFlagsFromEnv. However, the accepted flagset type is pflag.FlagSet
51// and it does not do any logging.

Callers 3

TestSetFlagsFromEnvFunction · 0.85
TestSetFlagsFromEnvBadFunction · 0.85

Calls 4

FlagToEnvFunction · 0.85
setFlagFromEnvFunction · 0.85
verifyEnvFunction · 0.85
VisitMethod · 0.65

Tested by 3

TestSetFlagsFromEnvFunction · 0.68
TestSetFlagsFromEnvBadFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…