From bac89ec524813136c419c02294df30d6fcf743ef Mon Sep 17 00:00:00 2001 From: kylecarbs Date: Tue, 17 May 2022 03:23:47 +0000 Subject: [PATCH] fix: Allow setting STUN to an empty string This allows users to entirely disable STUN. --- cli/cliflag/cliflag.go | 6 +++++- cli/cliflag/cliflag_test.go | 10 ++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/cli/cliflag/cliflag.go b/cli/cliflag/cliflag.go index d2f5e4e58601a..819fadaddc50f 100644 --- a/cli/cliflag/cliflag.go +++ b/cli/cliflag/cliflag.go @@ -40,7 +40,11 @@ func StringVarP(flagset *pflag.FlagSet, p *string, name string, shorthand string func StringArrayVarP(flagset *pflag.FlagSet, ptr *[]string, name string, shorthand string, env string, def []string, usage string) { val, ok := os.LookupEnv(env) if ok { - def = strings.Split(val, ",") + if val == "" { + def = []string{} + } else { + def = strings.Split(val, ",") + } } flagset.StringArrayVarP(ptr, name, shorthand, def, usage) } diff --git a/cli/cliflag/cliflag_test.go b/cli/cliflag/cliflag_test.go index 96b2c321c7442..051707c97cbc7 100644 --- a/cli/cliflag/cliflag_test.go +++ b/cli/cliflag/cliflag_test.go @@ -96,6 +96,16 @@ func TestCliflag(t *testing.T) { require.Equal(t, []string{"wow", "test"}, got) }) + t.Run("StringArrayEnvVarEmpty", func(t *testing.T) { + var ptr []string + flagset, name, shorthand, env, usage := randomFlag() + t.Setenv(env, "") + cliflag.StringArrayVarP(flagset, &ptr, name, shorthand, env, nil, usage) + got, err := flagset.GetStringArray(name) + require.NoError(t, err) + require.Equal(t, []string{}, got) + }) + t.Run("IntDefault", func(t *testing.T) { var ptr uint8 flagset, name, shorthand, env, usage := randomFlag()