| 102 | } |
| 103 | |
| 104 | func setFlagFromEnv(lg *zap.Logger, fs flagSetter, prefix, fname string, usedEnvKey, alreadySet map[string]bool, log bool) error { |
| 105 | key := FlagToEnv(prefix, fname) |
| 106 | if !alreadySet[key] { |
| 107 | val := os.Getenv(key) |
| 108 | if val != "" { |
| 109 | usedEnvKey[key] = true |
| 110 | if serr := fs.Set(fname, val); serr != nil { |
| 111 | return fmt.Errorf("invalid value %q for %s: %w", val, key, serr) |
| 112 | } |
| 113 | if log && lg != nil { |
| 114 | lg.Info( |
| 115 | "recognized and used environment variable", |
| 116 | zap.String("variable-name", key), |
| 117 | zap.String("variable-value", val), |
| 118 | ) |
| 119 | } |
| 120 | } |
| 121 | } |
| 122 | return nil |
| 123 | } |
| 124 | |
| 125 | func IsSet(fs *flag.FlagSet, name string) bool { |
| 126 | set := false |