From fc9c26cc8d9843398d0a0d643598a7cda6b976f7 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Fri, 17 Jan 2025 13:20:15 -0600 Subject: [PATCH] working on branches --- doExamine.go | 72 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 69 insertions(+), 3 deletions(-) diff --git a/doExamine.go b/doExamine.go index 7d8794a..f3f1dd1 100644 --- a/doExamine.go +++ b/doExamine.go @@ -1,6 +1,7 @@ package main import ( + "slices" "time" "go.wit.com/lib/gui/shell" @@ -15,14 +16,79 @@ func doExamine() bool { repo := all.Next() if tag := repo.ExamineBranches(); tag != nil { me.found.AppendByGoPath(repo) - ctime := tag.Creatordate.AsTime() - dur := time.Since(ctime) - log.Printf("UNKNOWN BRANCH %-50s %s %4s %s\n", repo.GetFullPath(), tag.Hash, shell.FormatDuration(dur), tag.Refname) + // ctime := tag.Creatordate.AsTime() + // dur := time.Since(ctime) + // log.Printf("UNKNOWN BRANCH %-50s %s %4s %s\n", repo.GetFullPath(), tag.Hash, shell.FormatDuration(dur), tag.Refname) + repo.CurrentTag = tag + } else { + repo.CurrentTag = nil } } if len(me.found.Repos) == 0 { return true } + // slices.Reverse(me.found.Repos) + slices.SortFunc(me.found.Repos, func(a, b *gitpb.Repo) int { + atime := a.CurrentTag.Creatordate.AsTime() + btime := b.CurrentTag.Creatordate.AsTime() + if atime.Before(btime) { + // log.Info("atime vs btime is 0", atime, btime) + return 1 + } + // log.Info("atime vs btime is 1", atime, btime) + return -1 + }) + all = me.found.All() + me.found = new(gitpb.Repos) + for all.Scan() { + repo := all.Next() + if isNormal(repo) { + continue + } + + tag := repo.CurrentTag + ctime := tag.Creatordate.AsTime() + dur := time.Since(ctime) + log.Printf("UNKNOWN BRANCH %-50s %s %4s %s\n", repo.GetFullPath(), tag.Hash, shell.FormatDuration(dur), tag.Refname) + showNotDevel(repo) + + me.found.AppendByGoPath(repo) + } me.forge.PrintHumanTableDirty(me.found) return false } + +func isNormal(repo *gitpb.Repo) bool { + if repo.IsDirty() { + return true + } + if repo.GetUserVersion() != repo.GetDevelVersion() { + return true + } + return false +} + +func showNotDevel(repo *gitpb.Repo) error { + var cmd []string + cmd = append(cmd, "git") + cmd = append(cmd, "log") + cmd = append(cmd, "--format=\"%H\"") + cmd = append(cmd, repo.CurrentTag.Hash) + cmd = append(cmd, "--not") + cmd = append(cmd, "devel") + r, err := repo.RunStrictNew(cmd) + if err != nil { + log.Info("Error", cmd, err) + return err + } + if r == nil { + log.Info("Error r == nil", cmd, err) + return nil + } + if len(r.Stdout) != 0 { + for i, line := range r.Stdout { + log.Info(i, line) + } + } + return nil +}