summaryrefslogtreecommitdiff
path: root/tagWindow.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-12-03 00:34:55 -0600
committerJeff Carr <[email protected]>2024-12-03 00:34:55 -0600
commit283bd90e91d22e107cff71fcc613b8d646784aba (patch)
treeff26af5a12c12685f42c713b164b62e35402631b /tagWindow.go
parentd5c394d3c3894a141d5848483102433a30e1a2db (diff)
lots more moved to using the protobufv0.22.24v0.22.23
Diffstat (limited to 'tagWindow.go')
-rw-r--r--tagWindow.go51
1 files changed, 11 insertions, 40 deletions
diff --git a/tagWindow.go b/tagWindow.go
index 59caef5..fbd67dc 100644
--- a/tagWindow.go
+++ b/tagWindow.go
@@ -4,13 +4,11 @@ import (
"errors"
"path/filepath"
"regexp"
- "slices"
"strings"
"sync"
"time"
"go.wit.com/gui"
- "go.wit.com/lib/gui/shell"
"go.wit.com/log"
)
@@ -88,49 +86,24 @@ func (rs *RepoStatus) makeTagBox(box *gui.Node) error {
grid.NewLabel("ref")
grid.NewLabel("date")
grid.NewLabel("release subject")
- // works like a typerwriter
- grid.NextRow()
+ grid.NextRow() // works like a typerwriter newline
- // git tag --list --sort=taggerdate
- // git for-each-ref --sort=taggerdate --format '%(tag) %(*objectname) %(taggerdate)'
- // git rev-parse HEAD
- // if last tag == HEAD, then remove it
+ loop := rs.pb.Tags.SortByAge()
+ for loop.Scan() {
+ tag := loop.Next()
- tags := []string{"%(objectname)", "%(creatordate)", "%(*authordate)", "%(refname)", "%(subject)"}
- format := strings.Join(tags, "_,,,_")
- cmd := []string{"git", "for-each-ref", "--sort=taggerdate", "--format", format}
- // log.Info("RUNNING:", strings.Join(cmd, " "))
- r := shell.PathRunQuiet(rs.Path(), cmd)
- if r.Error != nil {
- log.Warn("git for-each-ref error:", r.Error)
- return r.Error
- }
-
- lines := r.Stdout
- // reverse the git order
- slices.Reverse(lines)
- tagB.tags = make([]*Tag, 0)
-
- for i, line := range lines {
- var parts []string
- parts = make([]string, 0)
- parts = strings.Split(line, "_,,,_")
- if len(parts) != 5 {
- log.Info("tag error:", i, parts)
- continue
- }
- // log.Info("found tag:", i, parts)
rTag := new(Tag)
- rTag.tag = grid.NewLabel(parts[3])
- rTag.ref = grid.NewEntrybox(parts[0])
+ rTag.tag = grid.NewLabel(tag.GetRefname())
+ rTag.ref = grid.NewEntrybox(tag.GetHash())
- _, stamp, dur := getGitDateStamp(parts[1])
- rTag.date = grid.NewLabel(stamp)
+ ctime := tag.GetAuthordate().AsTime()
+ dur := getDurationStamp(ctime)
+ rTag.date = grid.NewLabel(ctime.Format("YYYY/MM/DD"))
rTag.duration = grid.NewLabel(dur)
- rTag.subject = grid.NewLabel(parts[4])
+ rTag.subject = grid.NewLabel(tag.GetSubject())
rTag.deleteB = grid.NewButton("delete", func() {
- tagversion := parts[0]
+ tagversion := tag.GetRefname()
log.Info("remove tag", tagversion)
var all [][]string
all = append(all, []string{"git", "tag", "--delete", tagversion})
@@ -147,8 +120,6 @@ func (rs *RepoStatus) makeTagBox(box *gui.Node) error {
// works like a typerwriter
grid.NextRow()
}
- // reverse the git order
- // slices.Reverse(rtags.tags)
return nil
}