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)
| 32 | // are UPPERCASE, have the given prefix and any dashes are replaced by |
| 33 | // underscores - for example: some-flag => ETCD_SOME_FLAG |
| 34 | func 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. |
searching dependent graphs…