diff --git a/cmd/completion.go b/cmd/completion.go new file mode 100644 index 00000000..a84f851e --- /dev/null +++ b/cmd/completion.go @@ -0,0 +1,49 @@ +/* +Copyright © 2019 NAME HERE + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package cmd + +import ( + "github.com/spf13/cobra" + "os" +) + +// completionCmd represents the completion command +var completionCmd = &cobra.Command{ + Use: "completion", + Short: "Generates bash/zsh completion scripts", + Long: `To load completion run + +. <(bitbucket completion) + +To configure your bash shell to load completions for each session add to your bashrc + +# ~/.bashrc or ~/.profile +. <(bitbucket completion) +`, + Run: func(cmd *cobra.Command, args []string) { + complet := args[0] + if complet == "bash" { + rootCmd.GenBashCompletion(os.Stdout) + }else if complet == "zsh" { + rootCmd.GenZshCompletion(os.Stdout) + } + }, +} + +func init() { + rootCmd.AddCommand(completionCmd) + completionCmd.SetArgs([]string{""}) +}