fix(helm): support HELM_HOME during plugin loading

closes #2630
parent 76d3161e
......@@ -24,6 +24,7 @@ import (
"strings"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
helm_env "k8s.io/helm/pkg/helm/environment"
"k8s.io/helm/pkg/plugin"
......@@ -41,6 +42,16 @@ func loadPlugins(baseCmd *cobra.Command, out io.Writer) {
return
}
// manually handel processing of HELM_HOME and --home
helmHome := "$HOME/.helm"
if h, ok := os.LookupEnv("HELM_HOME"); ok {
helmHome = h
}
fs := pflag.NewFlagSet("homer", pflag.ContinueOnError)
fs.StringVar((*string)(&settings.Home), "home", helmHome, "location of your Helm config. Overrides $HELM_HOME")
fs.Parse(os.Args)
found, err := findPlugins(settings.PluginDirs())
if err != nil {
fmt.Fprintf(os.Stderr, "failed to load plugins: %s", err)
......
......@@ -64,12 +64,24 @@ func TestManuallyProcessArgs(t *testing.T) {
}
// resetEnv sets an env var, and returns a defer function to reset the env
func resetEnv(name, val string) func() {
original, ok := os.LookupEnv(name)
os.Setenv(name, val)
if ok {
return func() { os.Setenv(name, original) }
}
return func() { os.Unsetenv(name) }
}
func TestLoadPlugins(t *testing.T) {
// Set helm home to point to testdata
old := settings.Home
settings.Home = "testdata/helmhome"
cleanup := resetEnv("HELM_HOME", settings.Home.String())
defer func() {
settings.Home = old
cleanup()
}()
hh := settings.Home
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment