diff --git a/cmd/helm/root.go b/cmd/helm/root.go index 69981ca01..bc8e4a800 100644 --- a/cmd/helm/root.go +++ b/cmd/helm/root.go @@ -91,30 +91,49 @@ __helm_get_namespaces() __helm_list_releases() { - __helm_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" - local out filter - # Use ^ to map from the start of the release name - filter="^${words[c]}" - if out=$(helm list $(__helm_override_flags) -a -q -m 1000 -f ${filter} 2>/dev/null); then + __helm_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" + local out filter helm_binary + + # Use ^ to map from the start of the release name + filter="^${words[c]}" + + helm_binary="${words[0]}" + __helm_debug "${FUNCNAME[0]}: helm_binary is ${helm_binary}" + + # Use eval in case helm_binary or __helm_override_flags contains a variable (e.g., $HOME/bin/h3) + if out=$(eval ${helm_binary} list $(__helm_override_flags) -a -q -m 1000 -f ${filter} 2>/dev/null); then COMPREPLY=( $( compgen -W "${out[*]}" -- "$cur" ) ) fi } + __helm_list_repos() { __helm_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" - local out - if out=$(helm repo list 2>/dev/null | tail +2 | cut -f1); then + local out helm_binary + + helm_binary="${words[0]}" + __helm_debug "${FUNCNAME[0]}: helm_binary is ${helm_binary}" + + # Use eval in case helm_binary contains a variable (e.g., $HOME/bin/h3) + if out=$(eval ${helm_binary} repo list 2>/dev/null | tail +2 | cut -f1); then COMPREPLY=( $( compgen -W "${out[*]}" -- "$cur" ) ) fi } + __helm_list_plugins() { __helm_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}" - local out - if out=$(helm plugin list 2>/dev/null | tail +2 | cut -f1); then + local out helm_binary + + helm_binary="${words[0]}" + __helm_debug "${FUNCNAME[0]}: helm_binary is ${helm_binary}" + + # Use eval in case helm_binary contains a variable (e.g., $HOME/bin/h3) + if out=$(eval ${helm_binary} plugin list 2>/dev/null | tail +2 | cut -f1); then COMPREPLY=( $( compgen -W "${out[*]}" -- "$cur" ) ) fi } + __helm_custom_func() { __helm_debug "${FUNCNAME[0]}: last_command is $last_command"