ls: better output

Michael Muré created

Change summary

bug/snapshot.go | 18 ++++++++++++++++++
commands/ls.go  |  2 +-
2 files changed, 19 insertions(+), 1 deletion(-)

Detailed changes

bug/snapshot.go 🔗

@@ -1,8 +1,26 @@
 package bug
 
+import (
+	"fmt"
+	"time"
+)
+
 // Snapshot is a compiled form of the Bug data structure used for storage and merge
 type Snapshot struct {
 	Title    string
 	Comments []Comment
 	Labels   []Label
 }
+
+func (snap Snapshot) Summary() string {
+	return fmt.Sprintf("c:%d l:%d %s",
+		len(snap.Comments)-1,
+		len(snap.Labels),
+		snap.LastEdit().Format(time.RFC822),
+	)
+}
+
+func (snap Snapshot) LastEdit() time.Time {
+	lastEditTimestamp := snap.Comments[len(snap.Comments)-1].Time
+	return time.Unix(lastEditTimestamp, 0)
+}

commands/ls.go 🔗

@@ -22,7 +22,7 @@ func RunLsBug(repo repository.Repo, args []string) error {
 
 		snapshot := bug.Compile()
 
-		fmt.Printf("%s %s\n", bug.HumanId(), snapshot.Title)
+		fmt.Printf("%s %s\t%s\n", bug.HumanId(), snapshot.Title, snapshot.Summary())
 	}
 
 	return nil