submit-patchset/doExamine.go

95 lines
2.1 KiB
Go

package main
import (
"slices"
"time"
"go.wit.com/lib/gui/shell"
"go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
)
func doExamine() bool {
me.found = new(gitpb.Repos)
all := me.forge.Repos.SortByFullPath()
for all.Scan() {
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)
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
}