aboutsummaryrefslogtreecommitdiffstats
path: root/commands/ls.go
diff options
context:
space:
mode:
authorSladyn <gunnerforlife00@gmail.com>2019-02-28 02:49:35 +0530
committerSladyn <gunnerforlife00@gmail.com>2019-03-02 23:04:45 +0530
commit43e56692e832bcb4ef39f745ec9fbaf7360052de (patch)
tree0cae5fa06e23e193d881c94a250ab6205c016c34 /commands/ls.go
parent7260ca05bc3588c0572887a7d8f1b897c7fc13da (diff)
downloadgit-bug-43e56692e832bcb4ef39f745ec9fbaf7360052de.tar.gz
ls.go:`git bug ls` should be faster
Added `Title` to BugExcerpt Added `TitleFilter` to `filter.go` Used BugExcerpt in `ls` command to improve performance. Closes https://github.com/MichaelMure/git-bug/issues/98
Diffstat (limited to 'commands/ls.go')
-rw-r--r--commands/ls.go31
1 files changed, 15 insertions, 16 deletions
diff --git a/commands/ls.go b/commands/ls.go
index 75b7ceaf..e40f3542 100644
--- a/commands/ls.go
+++ b/commands/ls.go
@@ -5,7 +5,6 @@ import (
"strings"
"github.com/MichaelMure/git-bug/cache"
- "github.com/MichaelMure/git-bug/identity"
"github.com/MichaelMure/git-bug/util/colors"
"github.com/MichaelMure/git-bug/util/interrupt"
"github.com/spf13/cobra"
@@ -14,6 +13,7 @@ import (
var (
lsStatusQuery []string
lsAuthorQuery []string
+ lsTitleQuery []string
lsLabelQuery []string
lsNoQuery []string
lsSortBy string
@@ -45,30 +45,22 @@ func runLsBug(cmd *cobra.Command, args []string) error {
allIds := backend.QueryBugs(query)
for _, id := range allIds {
- b, err := backend.ResolveBug(id)
+ b, err := backend.ResolveBugExcerpt(id)
if err != nil {
return err
}
- snapshot := b.Snapshot()
-
- var author identity.Interface
-
- if len(snapshot.Comments) > 0 {
- create := snapshot.Comments[0]
- author = create.Author
- }
-
// truncate + pad if needed
- titleFmt := fmt.Sprintf("%-50.50s", snapshot.Title)
- authorFmt := fmt.Sprintf("%-15.15s", author.DisplayName())
+ titleFmt := fmt.Sprintf("%-50.50s", b.Title)
+ authorFmt := fmt.Sprintf("%-15.15s", b.Author.Name)
- fmt.Printf("%s %s\t%s\t%s\t%s\n",
+ fmt.Printf("%s %s\t%s\t%s\tC:%d L:%d\n",
colors.Cyan(b.HumanId()),
- colors.Yellow(snapshot.Status),
+ colors.Yellow(b.Status),
titleFmt,
colors.Magenta(authorFmt),
- snapshot.Summary(),
+ b.NoOfComments,
+ len(b.Labels),
)
}
@@ -87,6 +79,11 @@ func lsQueryFromFlags() (*cache.Query, error) {
query.Status = append(query.Status, f)
}
+ for _, title := range lsTitleQuery {
+ f := cache.TitleFilter(title)
+ query.Title = append(query.Title, f)
+ }
+
for _, author := range lsAuthorQuery {
f := cache.AuthorFilter(author)
query.Author = append(query.Author, f)
@@ -156,6 +153,8 @@ func init() {
"Filter by author")
lsCmd.Flags().StringSliceVarP(&lsLabelQuery, "label", "l", nil,
"Filter by label")
+ lsCmd.Flags().StringSliceVarP(&lsTitleQuery, "title", "t", nil,
+ "Filter by title")
lsCmd.Flags().StringSliceVarP(&lsNoQuery, "no", "n", nil,
"Filter by absence of something. Valid values are [label]")
lsCmd.Flags().StringVarP(&lsSortBy, "by", "b", "creation",