From b9d0b9d434ca564ad44204d41ad0b852cc5d7218 Mon Sep 17 00:00:00 2001 From: Alexey Igrychev Date: Thu, 10 Nov 2022 19:42:13 +0000 Subject: [PATCH] feat(completion): add fish and powershell support Signed-off-by: Alexey Igrychev --- cmd/werf/completion/completion.go | 14 ++++++++++++-- docs/_includes/reference/cli/werf_completion.md | 8 +++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/cmd/werf/completion/completion.go b/cmd/werf/completion/completion.go index 57198db577..5b269f5eeb 100644 --- a/cmd/werf/completion/completion.go +++ b/cmd/werf/completion/completion.go @@ -28,7 +28,13 @@ func NewCmd(ctx context.Context, rootCmd *cobra.Command) *cobra.Command { # Load zsh completion $ autoload -Uz compinit && compinit -C - $ source <(%[1]s completion --shell=zsh)`, rootCmd.Name()), + $ source <(%[1]s completion --shell=zsh) + + # Load fish completion + $ source <(%[1]s completion --shell=fish) + + # Load powershell completion + $ %[1]s completion --shell=powershell | Out-String | Invoke-Expression`, rootCmd.Name()), RunE: func(cmd *cobra.Command, args []string) error { switch cmdData.Shell { case "bash": @@ -41,6 +47,10 @@ func NewCmd(ctx context.Context, rootCmd *cobra.Command) *cobra.Command { _, _ = os.Stdout.WriteString(zshCompdef) return nil + case "fish": + return rootCmd.GenFishCompletion(os.Stdout, true) + case "powershell": + return rootCmd.GenPowerShellCompletion(os.Stdout) default: common.PrintHelp(cmd) return fmt.Errorf("provided shell %q not supported", cmdData.Shell) @@ -55,7 +65,7 @@ func NewCmd(ctx context.Context, rootCmd *cobra.Command) *cobra.Command { defaultShell = "bash" } - cmd.Flags().StringVarP(&cmdData.Shell, "shell", "", defaultShell, "Set to bash or zsh (default $WERF_SHELL or bash)") + cmd.Flags().StringVarP(&cmdData.Shell, "shell", "", defaultShell, "Set to bash, zsh, fish or powershell (default $WERF_SHELL or bash)") return cmd } diff --git a/docs/_includes/reference/cli/werf_completion.md b/docs/_includes/reference/cli/werf_completion.md index b1209f003d..757130b44c 100644 --- a/docs/_includes/reference/cli/werf_completion.md +++ b/docs/_includes/reference/cli/werf_completion.md @@ -22,12 +22,18 @@ werf completion [options] # Load zsh completion $ autoload -Uz compinit && compinit -C $ source <(werf completion --shell=zsh) + + # Load fish completion + $ source <(werf completion --shell=fish) + + # Load powershell completion + $ werf completion --shell=powershell | Out-String | Invoke-Expression ``` {{ header }} Options ```shell --shell='bash' - Set to bash or zsh (default $WERF_SHELL or bash) + Set to bash, zsh, fish or powershell (default $WERF_SHELL or bash) ```