summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doDirty.go52
1 files changed, 47 insertions, 5 deletions
diff --git a/doDirty.go b/doDirty.go
index 9e9f609..70e018a 100644
--- a/doDirty.go
+++ b/doDirty.go
@@ -11,18 +11,43 @@ import (
"go.wit.com/log"
)
+func (f *Forge) CheckDirtyQuiet() {
+ start := f.straightCheckDirty()
+ now := time.Now()
+ stats := f.RillRepos(doCheckDirty)
+ end := f.straightCheckDirty()
+ diff := end - start
+
+ var changed bool
+ for _, s := range stats {
+ if s.Err == nil {
+ } else {
+ // log.Info(i, s.Err)
+ f.SetConfigSave(true)
+ changed = true
+ }
+ }
+ if changed {
+ log.Printf("dirty check (%d dirty repos) (%d total repos) (%d changed) took:%s\n", end, f.Repos.Len(), diff, shell.FormatDuration(time.Since(now)))
+ }
+}
+
func (f *Forge) CheckDirty() *gitpb.Repos {
start := f.straightCheckDirty()
now := time.Now()
- f.RillFuncError(doCheckDirty)
+ stats := f.RillRepos(doCheckDirty)
end := f.straightCheckDirty()
diff := end - start
log.Printf("dirty check (%d dirty repos) (%d total repos) (%d changed) took:%s\n", end, f.Repos.Len(), diff, shell.FormatDuration(time.Since(now)))
- // todo: actually detect if this needs to be changed?
- f.SetConfigSave(true)
- f.ConfigSave()
+ for i, s := range stats {
+ if s.Err == nil {
+ } else {
+ log.Info(i, s.Err)
+ f.SetConfigSave(true)
+ }
+ }
return f.FindDirty()
}
@@ -38,11 +63,28 @@ func (f *Forge) straightCheckDirty() int {
}
func doCheckDirty(repo *gitpb.Repo) error {
- repo.CheckDirty()
// reset these in here for now
if repo.GetTargetVersion() != "" {
repo.TargetVersion = ""
}
+
+ if repo.IsDirty() {
+ if repo.CheckDirty() {
+ // nothing changed
+ } else {
+ log.Info("Repo changed to clean", repo.FullPath)
+ // f.SetConfigSave(true)
+ }
+ } else {
+ if repo.CheckDirty() {
+ log.Info("Repo changed to dirty", repo.FullPath)
+ return log.Errorf("%s repo changed to dirty", repo.FullPath)
+ // f.SetConfigSave(true)
+ } else {
+ // nothing changed
+ }
+ }
+
return nil
}