forgepb/humanShowRepo.go

96 lines
2.4 KiB
Go

package forgepb
import (
"os"
"path/filepath"
"time"
"go.wit.com/lib/gui/shell"
"go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
)
func (f *Forge) HumanPrintRepo(check *gitpb.Repo) {
if check == nil {
log.Info("forge: you sent me nil")
return
}
if check.GetTargetVersion() == "" {
log.Info("TargetVersion == blank")
}
if check.GetTargetVersion() == check.GetCurrentVersion() {
log.Info("IsReleased() == true. do not release this a second time")
} else {
log.Info("IsReleased() == false")
}
if check.CheckDirty() {
log.Info("CheckDirty() == true. do not release dirty repos")
} else {
log.Info("CheckDirty() == false")
}
if check.GetGoPrimitive() {
log.Info("IsPrimitive() == true")
} else {
log.Info("IsPrimitive() == false")
}
if f.Config.IsPrivate(check.GetGoPath()) {
log.Info("IsPrivate() == true")
} else {
log.Info("IsPrivate() == false")
}
if ok, compiled, err := check.IsProtobuf(); ok {
log.Info(log.Sprint("IsProtobuf() == true compiled protobuf files = ", compiled))
if err != nil {
log.Info("IsProtobuf() ERROR = ", err)
}
for _, s := range compiled {
log.Info("\tcompiled file found:", s)
}
} else {
log.Info("IsProtobuf() == false")
if err != nil {
log.Info("IsProtobuf() ERROR = ", err)
}
}
// testNext(check)
found := new(gitpb.Repos)
found.AppendUniqueGoPath(check)
f.PrintHumanTable(found)
printTime("Last Pull", check.Times.LastPull.AsTime())
printTime("Last Dirty", check.Times.LastDirty.AsTime())
printTime("dir mtime", check.Times.MtimeDir.AsTime())
printTime("HEAD mtime", check.Times.MtimeHead.AsTime())
printTime("Index mtime", check.Times.MtimeIndex.AsTime())
printTime("fetch", check.Times.MtimeFetch.AsTime())
printTime("last go.sum", check.Times.LastGoDep.AsTime())
printTime("last commit", check.Times.NewestCommit.AsTime())
now := time.Now()
dur := now.Sub(check.Times.LastUpdate.AsTime())
log.Printf("Repo Last Reload: %s\n", shell.FormatDuration(dur))
}
func (f *Forge) testGoRepo(check *gitpb.Repo) {
data, _ := os.ReadFile(filepath.Join(check.FullPath, "go.mod"))
log.Info(string(data))
if f.FinalGoDepsCheckOk(check) {
log.Info("forge.FinalGoDepsCheck(check) worked!")
} else {
log.Info("forge.FinalGoDepsCheck(check) failed. boo.")
}
}
func printTime(s string, t time.Time) {
now := time.Now()
dur := now.Sub(t)
if dur < (time.Hour * 24) {
log.Printf("%s mtime last changed %s\n", s, shell.FormatDuration(dur))
}
}