package repolist import ( "fmt" "strconv" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) func (r *RepoList) RegisterHideFunction(f func(*RepoRow)) { me.hideFunction = f } func (r *RepoList) ScanRepositoriesOld() (int, string) { var i int var shown int var total int t := TimeFunction(func() { for _, repo := range me.allrepos { i += 1 changed := repo.Update() total += changed } var hidden int for _, repo := range me.allrepos { if repo.Hidden() { hidden += 1 } else { shown += 1 } } }) s := fmt.Sprint(t) tmp := strconv.Itoa(shown) + " repos shown" me.shownCount.SetText(tmp) me.duration.SetText(s) log.Info("repolist Scanned", i, "repositories.", total, "changes in", s) return i, s } func (r *RepoRow) UpdatePb(newpb *gitpb.Repo) { r.pb = newpb } func (r *RepoRow) Update() int { var changed int = 0 if r.Status == nil { log.Log(WARN, "repo.Status = nil. not initialized for some reason") return changed } pb := r.pb if pb == nil { log.Log(WARN, "NewScan() pb = nil") return changed } if r.lastTag != nil { r.lastTag.SetLabel(pb.GetLastTag()) } // run the repostatus update // r.Status.Update() r.masterVersion.SetLabel(pb.GetMasterVersion()) r.develVersion.SetLabel(pb.GetDevelVersion()) r.userVersion.SetLabel(pb.GetUserVersion()) r.pbState.SetLabel(pb.GetState()) r.currentName.SetLabel(pb.GetCurrentBranchName()) r.currentVersion.SetLabel(pb.GetCurrentBranchVersion()) // disable the commit button if the repo is not on the user branch if pb.GetCurrentBranchName() == pb.GetUserBranchName() { r.commitB.Enable() } else { r.commitB.Disable() } // TODO: finally make this alot smarter if r.State() == "merge to main" { r.Hide() } if pb.GetState() == "PERFECT" { r.Hide() } else { r.Show() } return changed }