aboutsummaryrefslogtreecommitdiffstats
path: root/commands/show.go
diff options
context:
space:
mode:
Diffstat (limited to 'commands/show.go')
-rw-r--r--commands/show.go126
1 files changed, 66 insertions, 60 deletions
diff --git a/commands/show.go b/commands/show.go
index 0b5585f1..56717b3b 100644
--- a/commands/show.go
+++ b/commands/show.go
@@ -13,7 +13,7 @@ import (
)
var (
- showFieldsQuery []string
+ showFieldsQuery string
)
func runShowBug(cmd *cobra.Command, args []string) error {
@@ -37,69 +37,75 @@ func runShowBug(cmd *cobra.Command, args []string) error {
firstComment := snapshot.Comments[0]
- if showFieldsQuery==nil {
- // Header
- fmt.Printf("[%s] %s %s\n\n",
- colors.Yellow(snapshot.Status),
- colors.Cyan(snapshot.HumanId()),
- snapshot.Title,
- )
+ if showFieldsQuery != "" {
+ switch showFieldsQuery {
+ case "author":
+ fmt.Printf("%s\n", firstComment.Author.DisplayName())
+ case "authorEmail":
+ fmt.Printf("%s\n", firstComment.Author.Email)
+ case "createTime":
+ fmt.Printf("%s\n", firstComment.FormatTime())
+ case "id":
+ fmt.Printf("%s\n", snapshot.Id())
+ case "labels":
+ var labels = make([]string, len(snapshot.Labels))
+ fmt.Printf("%s\n", strings.Join(labels, ", "))
+ case "shortId":
+ fmt.Printf("%s\n", snapshot.HumanId())
+ case "status":
+ fmt.Printf("%s\n", snapshot.Status)
+ case "title":
+ fmt.Printf("%s\n", snapshot.Title)
+ default:
+ return fmt.Errorf("\nUnsupported field: %s\n", showFieldsQuery)
+ }
- fmt.Printf("%s opened this issue %s\n\n",
- colors.Magenta(firstComment.Author.DisplayName()),
- firstComment.FormatTimeRel(),
- )
+ return nil
+ }
- var labels = make([]string, len(snapshot.Labels))
- for i := range snapshot.Labels {
- labels[i] = string(snapshot.Labels[i])
- }
+ // Header
+ fmt.Printf("[%s] %s %s\n\n",
+ colors.Yellow(snapshot.Status),
+ colors.Cyan(snapshot.HumanId()),
+ snapshot.Title,
+ )
+
+ fmt.Printf("%s opened this issue %s\n\n",
+ colors.Magenta(firstComment.Author.DisplayName()),
+ firstComment.FormatTimeRel(),
+ )
+
+ var labels = make([]string, len(snapshot.Labels))
+ for i := range snapshot.Labels {
+ labels[i] = string(snapshot.Labels[i])
+ }
- fmt.Printf("labels: %s\n\n",
- strings.Join(labels, ", "),
+ fmt.Printf("labels: %s\n\n",
+ strings.Join(labels, ", "),
+ )
+
+ // Comments
+ indent := " "
+
+ for i, comment := range snapshot.Comments {
+ var message string
+ fmt.Printf("%s#%d %s <%s>\n\n",
+ indent,
+ i,
+ comment.Author.DisplayName(),
+ comment.Author.Email,
)
- // Comments
- indent := " "
-
- for i, comment := range snapshot.Comments {
- var message string
- fmt.Printf("%s#%d %s <%s>\n\n",
- indent,
- i,
- comment.Author.DisplayName(),
- comment.Author.Email,
- )
-
- if comment.Message == "" {
- message = colors.GreyBold("No description provided.")
- } else {
- message = comment.Message
- }
-
- fmt.Printf("%s%s\n\n\n",
- indent,
- message,
- )
- }
- } else {
- for _, field := range showFieldsQuery {
- switch field {
- case "author": fmt.Printf("%s ",firstComment.Author.DisplayName())
- case "authorEmail": fmt.Printf("%s ",firstComment.Author.Email)
- case "createTime": fmt.Printf("%s ",firstComment.FormatTime())
- case "id": fmt.Printf("%s ",snapshot.Id())
- case "labels":
- var labels = make([]string, len(snapshot.Labels))
- fmt.Printf("%s ",strings.Join(labels,", "))
- case "shortId": fmt.Printf("%s ",snapshot.HumanId())
- case "status": fmt.Printf("%s ",snapshot.Status)
- case "title": fmt.Printf("%s ",snapshot.Title)
- default:
- return fmt.Errorf("\nUnsupported field: %s\n",field)
- }
+ if comment.Message == "" {
+ message = colors.GreyBold("No description provided.")
+ } else {
+ message = comment.Message
}
- fmt.Printf("\n")
+
+ fmt.Printf("%s%s\n\n\n",
+ indent,
+ message,
+ )
}
return nil
@@ -114,6 +120,6 @@ var showCmd = &cobra.Command{
func init() {
RootCmd.AddCommand(showCmd)
- showCmd.Flags().StringSliceVarP(&showFieldsQuery,"fields","f",nil,
- "Selects fields to display. Valid values are [author,authorEmail,createTime,id,labels,shortId,status,title]")
+ showCmd.Flags().StringVarP(&showFieldsQuery, "field", "f", "",
+ "Select field to display. Valid values are [author,authorEmail,createTime,id,labels,shortId,status,title]")
}