61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"time"
|
|
|
|
"go.wit.com/lib/gui/shell"
|
|
"go.wit.com/lib/protobuf/gitpb"
|
|
"go.wit.com/log"
|
|
)
|
|
|
|
func doDirty() {
|
|
findAll() // select all the repos
|
|
doCheckDirtyAndConfigSave()
|
|
me.found = new(gitpb.Repos)
|
|
findDirty()
|
|
me.forge.PrintHumanTableDirty(me.found)
|
|
}
|
|
|
|
func straightCheckDirty() int {
|
|
var count int
|
|
var total int
|
|
now := time.Now()
|
|
all := me.found.All()
|
|
for all.Scan() {
|
|
repo := all.Next()
|
|
total += 1
|
|
if repo.IsDirty() {
|
|
count += 1
|
|
}
|
|
}
|
|
log.Printf("rill dirty check (%d dirty repos) (%d total repos) took:%s\n", count, total, shell.FormatDuration(time.Since(now)))
|
|
return count
|
|
}
|
|
|
|
func doCheckDirty(repo *gitpb.Repo) error {
|
|
repo.CheckDirty()
|
|
return nil
|
|
}
|
|
|
|
func doCheckDirtyAndConfigSave() {
|
|
start := straightCheckDirty()
|
|
// log.Info("before findAll()")
|
|
/*
|
|
all := me.found.All()
|
|
for all.Scan() {
|
|
repo := all.Next()
|
|
repo.CheckDirty()
|
|
}
|
|
*/
|
|
// this might work?
|
|
now := time.Now()
|
|
me.forge.RillFuncError(doCheckDirty)
|
|
end := straightCheckDirty()
|
|
log.Printf("dirty check (%d dirty repos) (%d total repos) took:%s\n", end, me.found.Len(), shell.FormatDuration(time.Since(now)))
|
|
|
|
if start != end {
|
|
// todo: use internal forgepb configsave flag. should work?
|
|
me.forge.ConfigSave()
|
|
}
|
|
}
|