diff --git a/cmd/list.go b/cmd/list.go index 6cd99f0..063c345 100644 --- a/cmd/list.go +++ b/cmd/list.go @@ -7,15 +7,21 @@ import ( ) func ListCmd() *cobra.Command { - return &cobra.Command{ + cmd := &cobra.Command{ Use: "list", Short: "Prints a list of the campaign's tickets", Long: "Prints a list of the campaign's tickets with their statuses and external ids", Args: cobra.NoArgs, Run: withApp(listCmdF), } + + cmd.Flags().BoolP("published-only", "p", false, "list only published tickets") + + return cmd } func listCmdF(a *app.App, cmd *cobra.Command, _ []string) { - a.Campaign.PrintList() + publishedOnly, _ := cmd.Flags().GetBool("published-only") + + a.Campaign.PrintList(publishedOnly) } diff --git a/model/campaign.go b/model/campaign.go index 9de5fbb..7940ca0 100644 --- a/model/campaign.go +++ b/model/campaign.go @@ -88,7 +88,7 @@ func (c *Campaign) PrintStatus() { w.Flush() } -func (c *Campaign) PrintList() { +func (c *Campaign) PrintList(publishedOnly bool) { for _, t := range c.Tickets { if t.IsPublishedJira() { var str string @@ -101,7 +101,7 @@ func (c *Campaign) PrintList() { str += fmt.Sprintf(" (%s)", color.MagentaString(t.GithubStatus)) } fmt.Println(str) - } else { + } else if !publishedOnly { b, _ := json.Marshal(t) fmt.Printf("unpublished: %s\n", color.YellowString(string(b))) }