diff options
| author | Jeff Carr <[email protected]> | 2024-12-03 00:34:55 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-12-03 00:34:55 -0600 |
| commit | 283bd90e91d22e107cff71fcc613b8d646784aba (patch) | |
| tree | ff26af5a12c12685f42c713b164b62e35402631b /tagWindow.go | |
| parent | d5c394d3c3894a141d5848483102433a30e1a2db (diff) | |
Diffstat (limited to 'tagWindow.go')
| -rw-r--r-- | tagWindow.go | 51 |
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 } |
