stop using XDG_CACHE_HOME as home directory (#299)

* stop using XDG_CACHE_HOME as home directory

XDG_CACHE_HOME is not a substitute for $HOME, see [1].

[1]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

* fix bats testing setup/teardown

since cmdutil.Homedir() would treat $XDG_CACHE_HOME as $HOME, deleting
$XDG_CACHE_HOME would wipe out previous kubens state. now that we're not
doing that, we need to make a real synthetic $HOME and clear it out so
that $HOME/.kube/kubens doesn't persist between runs.
This commit is contained in:
peter woodman
2021-05-28 19:09:32 -04:00
committed by GitHub
parent 34e9024835
commit ff2f9661a2
3 changed files with 7 additions and 10 deletions

View File

@@ -21,9 +21,6 @@ import (
) )
func HomeDir() string { func HomeDir() string {
if v := os.Getenv("XDG_CACHE_HOME"); v != "" {
return v
}
home := os.Getenv("HOME") home := os.Getenv("HOME")
if home == "" { if home == "" {
home = os.Getenv("USERPROFILE") // windows home = os.Getenv("USERPROFILE") // windows

View File

@@ -28,12 +28,12 @@ func Test_homeDir(t *testing.T) {
want string want string
}{ }{
{ {
name: "XDG_CACHE_HOME precedence", name: "don't use XDG_CACHE_HOME as homedir",
envs: []env{ envs: []env{
{"XDG_CACHE_HOME", "xdg"}, {"XDG_CACHE_HOME", "xdg"},
{"HOME", "home"}, {"HOME", "home"},
}, },
want: "xdg", want: "home",
}, },
{ {
name: "HOME over USERPROFILE", name: "HOME over USERPROFILE",
@@ -46,7 +46,6 @@ func Test_homeDir(t *testing.T) {
{ {
name: "only USERPROFILE available", name: "only USERPROFILE available",
envs: []env{ envs: []env{
{"XDG_CACHE_HOME", ""},
{"HOME", ""}, {"HOME", ""},
{"USERPROFILE", "up"}, {"USERPROFILE", "up"},
}, },
@@ -55,7 +54,6 @@ func Test_homeDir(t *testing.T) {
{ {
name: "none available", name: "none available",
envs: []env{ envs: []env{
{"XDG_CACHE_HOME", ""},
{"HOME", ""}, {"HOME", ""},
{"USERPROFILE", ""}, {"USERPROFILE", ""},
}, },

View File

@@ -2,13 +2,15 @@
# bats setup function # bats setup function
setup() { setup() {
export XDG_CACHE_HOME="$(mktemp -d)" TEMP_HOME="$(mktemp -d)"
export KUBECONFIG="${XDG_CACHE_HOME}/config" export TEMP_HOME
export HOME=$TEMP_HOME
export KUBECONFIG="${TEMP_HOME}/config"
} }
# bats teardown function # bats teardown function
teardown() { teardown() {
rm -rf "$XDG_CACHE_HOME" rm -rf "$TEMP_HOME"
} }
use_config() { use_config() {