// `portr completion` — generate shell completion scripts.
//
// See mercemay.top/src/portr/ for context.
package cmd
import (
"fmt"
"os"
"github.com/spf13/cobra"
)
var completionCmd = &cobra.Command{
Use: "completion [bash|zsh|fish|powershell]",
Short: "Generate shell completion scripts",
Args: cobra.MatchAll(cobra.ExactArgs(1), cobra.OnlyValidArgs),
ValidArgs: []string{"bash", "zsh", "fish", "powershell"},
Long: `To load completions in the current zsh session:
source <(portr completion zsh)
Write to disk (bash example):
portr completion bash > /etc/bash_completion.d/portr
`,
RunE: func(cmd *cobra.Command, args []string) error {
switch args[0] {
case "bash":
return Root.GenBashCompletion(os.Stdout)
case "zsh":
return Root.GenZshCompletion(os.Stdout)
case "fish":
return Root.GenFishCompletion(os.Stdout, true)
case "powershell":
return Root.GenPowerShellCompletionWithDesc(os.Stdout)
default:
return fmt.Errorf("completion: unknown shell %q", args[0])
}
},
}