package cmd import ( "fmt" "os" "github.com/spf13/cobra" ) var completionCmd = &cobra.Command{ Use: "completion [bash|zsh|fish|powershell]", Short: "Generate shell completions", Long: `Generate shell completion scripts for opal. To load completions: Bash: $ source <(opal completion bash) # To load on startup, add to ~/.bashrc: $ echo 'source <(opal completion bash)' >> ~/.bashrc Zsh: # Add to ~/.zshrc: eval "$(opal completion zsh)" Fish: $ opal completion fish | source # To load on startup: $ opal completion fish > ~/.config/fish/completions/opal.fish`, ValidArgs: []string{"bash", "zsh", "fish", "powershell"}, Args: cobra.MatchAll(cobra.ExactArgs(1), cobra.OnlyValidArgs), Run: func(cmd *cobra.Command, args []string) { switch args[0] { case "bash": rootCmd.GenBashCompletionV2(os.Stdout, true) case "zsh": rootCmd.GenZshCompletion(os.Stdout) case "fish": rootCmd.GenFishCompletion(os.Stdout, true) case "powershell": rootCmd.GenPowerShellCompletionWithDesc(os.Stdout) default: fmt.Fprintf(os.Stderr, "Unknown shell: %s\n", args[0]) os.Exit(1) } }, }