From d9ef40c873afda892b63b422cb7a359b44f88951 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Thu, 31 Oct 2019 11:41:24 +0100 Subject: [PATCH] Add `completion` script --- command/completion.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 command/completion.go diff --git a/command/completion.go b/command/completion.go new file mode 100644 index 000000000..c3b1e86b1 --- /dev/null +++ b/command/completion.go @@ -0,0 +1,41 @@ +package command + +import ( + "fmt" + "os" + + "github.com/spf13/cobra" +) + +var shellType string + +func init() { + RootCmd.AddCommand(completionCmd) + completionCmd.Flags().StringVarP(&shellType, "shell", "s", "bash", "The type of shell") +} + +var completionCmd = &cobra.Command{ + Use: "completion", + Hidden: true, + Short: "Generates completion scripts", + Long: `To enable completion in your shell, run: + + eval "$(gh completion)" + +You can add that to your '~/.bash_profile' to enable completion whenever you +start a new shell. + +When installing with Homebrew, see https://docs.brew.sh/Shell-Completion +`, + RunE: func(cmd *cobra.Command, args []string) error { + switch shellType { + case "bash": + RootCmd.GenBashCompletion(os.Stdout) + case "zsh": + RootCmd.GenZshCompletion(os.Stdout) + default: + return fmt.Errorf("unsupported shell type: %s", shellType) + } + return nil + }, +}