diff options
author | Arne Juul <arnej@yahooinc.com> | 2022-10-26 08:43:12 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahooinc.com> | 2022-10-26 08:52:47 +0000 |
commit | c4dcca93bcc4fe1f9b53cca02d5d998c22d62ad1 (patch) | |
tree | 4c27ec082beacf8948d4a4d4ec82bc4beed10b10 /client | |
parent | d687dec097c4c5da0ee2a499e9008444ffe74968 (diff) |
use fallbackVar, and fix bug
Diffstat (limited to 'client')
-rw-r--r-- | client/go/vespa/load_env.go | 9 | ||||
-rw-r--r-- | client/go/vespa/load_env_test.go | 8 |
2 files changed, 13 insertions, 4 deletions
diff --git a/client/go/vespa/load_env.go b/client/go/vespa/load_env.go index d606bf3543f..1c1a05fef89 100644 --- a/client/go/vespa/load_env.go +++ b/client/go/vespa/load_env.go @@ -20,6 +20,8 @@ func LoadDefaultEnv() error { func ExportDefaultEnvToSh() error { holder := newShellEnvExporter() err := loadDefaultEnvTo(holder) + holder.fallbackVar("VESPA_HOME", FindHome()) + holder.fallbackVar("VESPA_USER", FindVespaUser()) holder.dump() return err } @@ -151,9 +153,10 @@ func newShellEnvExporter() *shellEnvExporter { } } func (p *shellEnvExporter) fallbackVar(varName, varVal string) { - if os.Getenv(varName) == "" || p.unsetVars[varName] != "" { - delete(p.unsetVars, varName) - p.exportVars[varName] = shellQuote(varVal) + if p.exportVars[varName] == "" { + if os.Getenv(varName) == "" || os.Getenv(varName) == varVal || p.unsetVars[varName] != "" { + p.overrideVar(varName, varVal) + } } } func (p *shellEnvExporter) overrideVar(varName, varVal string) { diff --git a/client/go/vespa/load_env_test.go b/client/go/vespa/load_env_test.go index 41373f7ab82..e48a950b0b8 100644 --- a/client/go/vespa/load_env_test.go +++ b/client/go/vespa/load_env_test.go @@ -32,6 +32,7 @@ override VESPA_FOO "new foo" fallback VESPA_BAR "new bar" fallback VESPA_QUUX "new quux" +fallback VESPA_QUUX "bad quux" unset VESPA_FOOBAR `) @@ -120,14 +121,18 @@ func TestExportEnv(t *testing.T) { t.Setenv("VESPA_FOO", "was foo") t.Setenv("VESPA_BAR", "was bar") t.Setenv("VESPA_FOOBAR", "foobar") + t.Setenv("VESPA_ALREADY", "already") t.Setenv("VESPA_BARFOO", "was barfoo") os.Unsetenv("VESPA_QUUX") setup(t, ` # vespa env vars file override VESPA_FOO "newFoo1" +fallback VESPA_FOO "bad foo" fallback VESPA_BAR "new bar" fallback VESPA_QUUX "new quux" +fallback VESPA_QUUX "bad quux" +fallback VESPA_ALREADY "already" unset VESPA_FOOBAR unset VESPA_BARFOO @@ -143,13 +148,14 @@ unset XYZ assert.Equal(t, "", holder.exportVars["VESPA_BAR"]) assert.Equal(t, "'new quux'", holder.exportVars["VESPA_QUUX"]) assert.Equal(t, `'new'\''b<a>r'\''foo'`, holder.exportVars["VESPA_BARFOO"]) + assert.Equal(t, "already", holder.exportVars["VESPA_ALREADY"]) // unsets: assert.Equal(t, "", holder.exportVars["VESPA_FOOBAR"]) assert.Equal(t, "unset", holder.unsetVars["VESPA_FOOBAR"]) assert.Equal(t, "", holder.exportVars["XYZ"]) assert.Equal(t, "unset", holder.unsetVars["XYZ"]) // nothing extra allowed: - assert.Equal(t, 3, len(holder.exportVars)) + assert.Equal(t, 4, len(holder.exportVars)) assert.Equal(t, 2, len(holder.unsetVars)) // run it err = ExportDefaultEnvToSh() |