// 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 example: some-flag => ETCD_SOME_FLAG func SetFlagsFromEnv(lg *zap.Logger, prefix string, fs *flag.FlagSet) error { … } // SetPflagsFromEnv is similar to SetFlagsFromEnv. However, the accepted flagset type is pflag.FlagSet // and it does not do any logging. func SetPflagsFromEnv(lg *zap.Logger, prefix string, fs *pflag.FlagSet) error { … } // FlagToEnv converts flag string to upper-case environment variable key string. func FlagToEnv(prefix, name string) string { … } func verifyEnv(lg *zap.Logger, prefix string, usedEnvKey, alreadySet map[string]bool) { … } type flagSetter … func setFlagFromEnv(lg *zap.Logger, fs flagSetter, prefix, fname string, usedEnvKey, alreadySet map[string]bool, log bool) error { … } func IsSet(fs *flag.FlagSet, name string) bool { … }