summaryrefslogtreecommitdiffstats
path: root/pkg/commands/git_commands/stash_loader.go
diff options
context:
space:
mode:
authorAzraelSec <me@azraelsec.sh>2023-12-20 20:51:39 +0100
committerStefan Haller <stefan@haller-berlin.de>2023-12-27 11:21:49 +0100
commitbc330b8ff3ef7533bc1f96c7d2b309eaf94adf61 (patch)
treea55d85c53fae10731c34e5d9ea16945d5ef948f6 /pkg/commands/git_commands/stash_loader.go
parent7f36494eb2710588dc08b2dd110608f90764fd87 (diff)
feat: add age on stash lines
Diffstat (limited to 'pkg/commands/git_commands/stash_loader.go')
-rw-r--r--pkg/commands/git_commands/stash_loader.go21
1 files changed, 18 insertions, 3 deletions
diff --git a/pkg/commands/git_commands/stash_loader.go b/pkg/commands/git_commands/stash_loader.go
index 1ab0e0ad0..318e1ce0f 100644
--- a/pkg/commands/git_commands/stash_loader.go
+++ b/pkg/commands/git_commands/stash_loader.go
@@ -32,7 +32,7 @@ func (self *StashLoader) GetStashEntries(filterPath string) []*models.StashEntry
return self.getUnfilteredStashEntries()
}
- cmdArgs := NewGitCmd("stash").Arg("list", "--name-only").ToArgv()
+ cmdArgs := NewGitCmd("stash").Arg("list", "--name-only", "--pretty=%ct|%gs").ToArgv()
rawString, err := self.cmd.New(cmdArgs).DontLog().RunWithOutput()
if err != nil {
return self.getUnfilteredStashEntries()
@@ -66,7 +66,7 @@ outer:
}
func (self *StashLoader) getUnfilteredStashEntries() []*models.StashEntry {
- cmdArgs := NewGitCmd("stash").Arg("list", "-z", "--pretty=%gs").ToArgv()
+ cmdArgs := NewGitCmd("stash").Arg("list", "-z", "--pretty=%ct|%gs").ToArgv()
rawString, _ := self.cmd.New(cmdArgs).DontLog().RunWithOutput()
return lo.Map(utils.SplitNul(rawString), func(line string, index int) *models.StashEntry {
@@ -75,8 +75,23 @@ func (self *StashLoader) getUnfilteredStashEntries() []*models.StashEntry {
}
func (c *StashLoader) stashEntryFromLine(line string, index int) *models.StashEntry {
- return &models.StashEntry{
+ model := &models.StashEntry{
Name: line,
Index: index,
}
+
+ tstr, msg, ok := strings.Cut(line, "|")
+ if !ok {
+ return model
+ }
+
+ t, err := strconv.ParseInt(tstr, 10, 64)
+ if err != nil {
+ return model
+ }
+
+ model.Name = msg
+ model.Recency = utils.UnixToTimeAgo(t)
+
+ return model
}