fix: use LookupEnv to check if envar is actually set

Fixes #389
This commit is contained in:
Alec Thomas
2023-11-14 09:36:03 +11:00
parent 2df767872e
commit 0ecd272e23
+2 -2
View File
@@ -368,9 +368,9 @@ func (v *Value) Reset() error {
v.Target.Set(reflect.Zero(v.Target.Type()))
if len(v.Tag.Envs) != 0 {
for _, env := range v.Tag.Envs {
envar := os.Getenv(env)
envar, ok := os.LookupEnv(env)
// Parse the first non-empty ENV in the list
if envar != "" {
if ok {
err := v.Parse(ScanFromTokens(Token{Type: FlagValueToken, Value: envar}), v.Target)
if err != nil {
return fmt.Errorf("%s (from envar %s=%q)", err, env, envar)