fix(helm): fix flag parsing during plugin loading

pull/2682/head
Adam Reese 8 years ago
parent 1261f71faf
commit 700ef4a631
No known key found for this signature in database
GPG Key ID: 06F35E60A7A18DD6

@ -42,15 +42,9 @@ func loadPlugins(baseCmd *cobra.Command, out io.Writer) {
return return
} }
// manually handel processing of HELM_HOME and --home args, _ := manuallyProcessArgs(pflag.Args())
helmHome := "$HOME/.helm" baseCmd.ParseFlags(args)
if h, ok := os.LookupEnv("HELM_HOME"); ok { initRootFlags(baseCmd)
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()) found, err := findPlugins(settings.PluginDirs())
if err != nil { if err != nil {
@ -58,15 +52,6 @@ func loadPlugins(baseCmd *cobra.Command, out io.Writer) {
return return
} }
processParent := func(cmd *cobra.Command, args []string) ([]string, error) {
k, u := manuallyProcessArgs(args)
if err := cmd.Parent().ParseFlags(k); err != nil {
return nil, err
}
initRootFlags(cmd)
return u, nil
}
// Now we create commands for all of these. // Now we create commands for all of these.
for _, plug := range found { for _, plug := range found {
plug := plug plug := plug
@ -80,10 +65,7 @@ func loadPlugins(baseCmd *cobra.Command, out io.Writer) {
Short: md.Usage, Short: md.Usage,
Long: md.Description, Long: md.Description,
RunE: func(cmd *cobra.Command, args []string) error { RunE: func(cmd *cobra.Command, args []string) error {
u, err := processParent(cmd, args) _, u := manuallyProcessArgs(args)
if err != nil {
return err
}
// Call setupEnv before PrepareCommand because // Call setupEnv before PrepareCommand because
// PrepareCommand uses os.ExpandEnv and expects the // PrepareCommand uses os.ExpandEnv and expects the
@ -110,10 +92,6 @@ func loadPlugins(baseCmd *cobra.Command, out io.Writer) {
if md.UseTunnel { if md.UseTunnel {
c.PreRunE = func(cmd *cobra.Command, args []string) error { c.PreRunE = func(cmd *cobra.Command, args []string) error {
// Parse the parent flag, but not the local flags.
if _, err := processParent(cmd, args); err != nil {
return err
}
return setupConnection(cmd, args) return setupConnection(cmd, args)
} }
} }

Loading…
Cancel
Save