From efe2638f87b597403f34009e1029a6f0b44db8f2 Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Fri, 9 Jul 2021 16:46:32 -0400 Subject: [PATCH] feat(comp): Move to Cobra's bash completion V2 Cobra's bash completion V2 has the following benefits: - aligned with the completion logic for the other shells - provides completion descriptions as for the other shells - uses a 300-line shell script (versus 4K lines for V1) Signed-off-by: Marc Khouzam --- cmd/helm/completion.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cmd/helm/completion.go b/cmd/helm/completion.go index 0e673eae6..310c915b8 100644 --- a/cmd/helm/completion.go +++ b/cmd/helm/completion.go @@ -98,16 +98,16 @@ func newCompletionCmd(out io.Writer) *cobra.Command { } bash := &cobra.Command{ - Use: "bash", - Short: "generate autocompletion script for bash", - Long: bashCompDesc, - Args: require.NoArgs, - DisableFlagsInUseLine: true, - ValidArgsFunction: noCompletions, + Use: "bash", + Short: "generate autocompletion script for bash", + Long: bashCompDesc, + Args: require.NoArgs, + ValidArgsFunction: noCompletions, RunE: func(cmd *cobra.Command, args []string) error { return runCompletionBash(out, cmd) }, } + bash.Flags().BoolVar(&disableCompDescriptions, noDescFlagName, false, noDescFlagText) zsh := &cobra.Command{ Use: "zsh", @@ -151,7 +151,7 @@ func newCompletionCmd(out io.Writer) *cobra.Command { } func runCompletionBash(out io.Writer, cmd *cobra.Command) error { - err := cmd.Root().GenBashCompletion(out) + err := cmd.Root().GenBashCompletionV2(out, !disableCompDescriptions) // In case the user renamed the helm binary (e.g., to be able to run // both helm2 and helm3), we hook the new binary name to the completion function