mirror of
https://github.com/helm/helm.git
synced 2026-05-28 04:35:48 -04:00
Merge pull request #2675 from adamreese/fix/2630-helm-home-plugins
fix(helm): support HELM_HOME during plugin loading
This commit is contained in:
commit
0f8abb21a8
2 changed files with 23 additions and 0 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue