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  }