github.com/ianfoo/lab@v0.9.5-0.20180123060006-5ed79f2ccfc7/cmd/issue.go (about) 1 package cmd 2 3 import ( 4 "github.com/spf13/cobra" 5 ) 6 7 var issueCmd = &cobra.Command{ 8 Use: "issue", 9 Short: `Describe, list, and create issues`, 10 Long: ``, 11 Run: func(cmd *cobra.Command, args []string) { 12 if list, _ := cmd.Flags().GetBool("list"); list { 13 issueListCmd.Run(cmd, args) 14 return 15 } 16 17 if browse, _ := cmd.Flags().GetBool("browse"); browse { 18 issueBrowseCmd.Run(cmd, args) 19 return 20 } 21 22 if id, _ := cmd.Flags().GetString("close"); id != "" { 23 issueCloseCmd.Run(cmd, append(args, id)) 24 return 25 } 26 27 if len(args) == 0 || len(args) > 2 { 28 cmd.Help() 29 return 30 } 31 32 issueShowCmd.Run(cmd, args) 33 }, 34 } 35 36 func init() { 37 issueCmd.Flags().BoolP("list", "l", false, "List issues on a remote") 38 issueCmd.Flags().BoolP("browse", "b", false, "View issue <id> in a browser") 39 issueCmd.Flags().StringP("close", "d", "", "Close issue <id> on remote") 40 RootCmd.AddCommand(issueCmd) 41 }