fix: plugin does not load when helm base dir contains space

Signed-off-by: Suresh Kumar <sureshdsk91@gmail.com>
pull/10913/head
Suresh Kumar 3 years ago
parent 49819b4ef7
commit 2b49de0860

@ -129,7 +129,8 @@ func callPluginExecutable(pluginName string, main string, argv []string, out io.
env = append(env, fmt.Sprintf("%s=%s", k, v)) env = append(env, fmt.Sprintf("%s=%s", k, v))
} }
prog := exec.Command(main, argv...) mainCmdExp := os.ExpandEnv(main)
prog := exec.Command(mainCmdExp, argv...)
prog.Env = env prog.Env = env
prog.Stdin = os.Stdin prog.Stdin = os.Stdin
prog.Stdout = out prog.Stdout = out

@ -122,10 +122,10 @@ func getPlatformCommand(cmds []PlatformCommand) []string {
eq := strings.EqualFold eq := strings.EqualFold
for _, c := range cmds { for _, c := range cmds {
if eq(c.OperatingSystem, runtime.GOOS) { if eq(c.OperatingSystem, runtime.GOOS) {
command = strings.Split(os.ExpandEnv(c.Command), " ") command = strings.Split(c.Command, " ")
} }
if eq(c.OperatingSystem, runtime.GOOS) && eq(c.Architecture, runtime.GOARCH) { if eq(c.OperatingSystem, runtime.GOOS) && eq(c.Architecture, runtime.GOARCH) {
return strings.Split(os.ExpandEnv(c.Command), " ") return strings.Split(c.Command, " ")
} }
} }
return command return command
@ -149,16 +149,19 @@ func (p *Plugin) PrepareCommand(extraArgs []string) (string, []string, error) {
parts = getPlatformCommand(p.Metadata.PlatformCommand) parts = getPlatformCommand(p.Metadata.PlatformCommand)
} }
if platCmdLen == 0 || parts == nil { if platCmdLen == 0 || parts == nil {
parts = strings.Split(os.ExpandEnv(p.Metadata.Command), " ") parts = strings.Split(p.Metadata.Command, " ")
} }
if len(parts) == 0 || parts[0] == "" { if len(parts) == 0 || parts[0] == "" {
return "", nil, fmt.Errorf("no plugin command is applicable") return "", nil, fmt.Errorf("no plugin command is applicable")
} }
main := parts[0] main := os.ExpandEnv(parts[0])
baseArgs := []string{} baseArgs := []string{}
if len(parts) > 1 { if len(parts) > 1 {
baseArgs = parts[1:] for _, cmdpart := range parts[1:] {
cmdexp := os.ExpandEnv(cmdpart)
baseArgs = append(baseArgs, cmdexp)
}
} }
if !p.Metadata.IgnoreFlags { if !p.Metadata.IgnoreFlags {
baseArgs = append(baseArgs, extraArgs...) baseArgs = append(baseArgs, extraArgs...)

Loading…
Cancel
Save