summaryrefslogtreecommitdiff
path: root/scan.go
diff options
context:
space:
mode:
Diffstat (limited to 'scan.go')
-rw-r--r--scan.go126
1 files changed, 27 insertions, 99 deletions
diff --git a/scan.go b/scan.go
index 2d2f78f..5945ece 100644
--- a/scan.go
+++ b/scan.go
@@ -1,27 +1,39 @@
-// This is a simple example
package main
import (
"fmt"
+ "strings"
"time"
"go.wit.com/log"
-
- "go.wit.com/lib/gui/repostatus"
)
+func scanRepositories() {
+ var i int = 0
+ t := timeFunction(func() {
+ for _, repo := range me.allrepos {
+ repo.newScan()
+ i += 1
+ }
+ })
+ s := fmt.Sprint(t)
+ log.Info("Scanned", i, "repositories. todo: count/show changes", s)
+}
+
func (r *repo) newScan() bool {
if r.status == nil {
log.Warn("repo.status = nil. not initialized for some reason")
return false
}
- // r.scan()
- if repostatus.VerifyLocalGoRepo(r.getPath()) {
- log.Verbose("repo actually exists", r.getPath())
- } else {
- log.Warn("repo does not exist", r.getPath())
- return false
- }
+
+ // first run the repostatus update
+ r.status.UpdateNew()
+
+ // now read those values and display them in our table
+ // mname := r.status.GetMasterBranchName()
+ // mver := r.status.GetMasterVersion()
+ // mver = mver + " (" + mname + ")"
+ // r.masterVersion.SetLabel(mver)
cbname := r.status.GetCurrentBranchName()
cbversion := r.status.GetCurrentBranchVersion()
@@ -29,8 +41,11 @@ func (r *repo) newScan() bool {
r.lastTag.SetLabel(lasttag)
r.vLabel.SetLabel(cbname + " " + cbversion)
- if r.status.Changed() {
- log.Warn("should scan here")
+ if c, ok := r.status.Changed(); ok {
+ c := strings.TrimSpace(c)
+ for _, line := range strings.Split(c, "\n") {
+ log.Info(r.status.Path(), line)
+ }
}
status := r.status.GetStatus()
r.dirtyLabel.SetLabel(status)
@@ -43,93 +58,6 @@ func (r *repo) newScan() bool {
return false
}
-func (r *repo) getGoSumStatus() string {
- return r.goSumStatus.String()
-}
-
-func (r *repo) setGoSumStatus(s string) {
- r.goSumStatus.SetLabel(s)
- r.status.SetGoSumStatus(s)
-}
-
-func (r *repo) checkDirty() bool {
- if r.status.CheckDirty() {
- log.Info("dirty repo:", r.status.String(), r.getGoSumStatus())
- r.setGoSumStatus("DIRTY")
- return true
- }
- return false
-}
-
-func (r *repo) checkSafeGoSumRemake() {
- if ok, bad := r.status.CheckSafeGoSumRemake(); ok {
- log.Info("checkSafeGoSumRemake() is safe to redo")
- r.setGoSumStatus("SAFE")
- r.status.MakeRedomod()
- } else {
- log.Info("checkSafeGoSumRemake() is not safe. problems:", bad)
- r.setGoSumStatus("BAD DEP")
- }
-}
-
-func scanGoSum() {
- for _, repo := range me.allrepos {
- if repo.String() == "go.wit.com/apps/guireleaser" {
- if release.guireleaser == nil {
- release.guireleaser = repo
- }
- }
- latestversion := repo.status.GetLastTagVersion()
- if repo.getGoSumStatus() == "BAD" {
- continue
- }
- if repo.getGoSumStatus() == "DIRTY" {
- continue
- }
- if repo.status.CheckPrimativeGoMod() {
- log.Info("PRIMATIVE repo:", latestversion, repo.status.String())
- repo.setGoSumStatus("PRIMATIVE")
- continue
- }
- if repo.checkDirty() {
- log.Info("dirty repo:", latestversion, repo.status.String())
- log.Info("dirty repo.getGoSumStatus =", repo.getGoSumStatus())
- repo.setGoSumStatus("DIRTY")
-
- // release.repo.SetValue(repo.status.String())
- // release.status.SetValue("dirty")
- // release.notes.SetValue("You must commit your changes\nbefore you can continue")
- // release.current = repo
- // release.openrepo.Enable()
- continue
- }
- if ok, missing := repo.status.CheckGoSum(); ok {
- log.Info("repo has go.sum requirements that are clean")
- repo.setGoSumStatus("CLEAN")
- } else {
- log.Info("repo has go.sum requirements that are screwed up. missing:", missing)
- repo.setGoSumStatus("BAD")
-
- // release.repo.SetValue(repo.status.String())
- // release.status.SetValue("bad")
- // release.notes.SetValue("the go.sum file is wrong")
- // release.current = repo
- // release.openrepo.Enable()
- continue
- }
- status := repo.dirtyLabel.String()
- if status == "PERFECT" {
- continue
- } else {
- repo.status.UpdateCurrent()
- repo.newScan()
- }
-
- log.Info("repo:", latestversion, status, repo.status.String())
- }
- log.Info("scanGoSum() did everything, not sure what to do next")
-}
-
// timeFunction takes a function as an argument and returns the execution time.
func timeFunction(f func()) time.Duration {
startTime := time.Now() // Record the start time