github.com/ianfoo/lab@v0.9.5-0.20180123060006-5ed79f2ccfc7/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  }