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