89 lines
1.9 KiB
Go
89 lines
1.9 KiB
Go
// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
|
|
// Use of this source code is governed by the GPL 3.0
|
|
|
|
package main
|
|
|
|
// An app to submit patches for the 30 GO GUI repos
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"go.wit.com/gui"
|
|
"go.wit.com/lib/debugger"
|
|
"go.wit.com/lib/gui/shell"
|
|
"go.wit.com/lib/protobuf/gitpb"
|
|
"go.wit.com/log"
|
|
)
|
|
|
|
func init() {
|
|
if debugger.ArgDebug() {
|
|
log.Info("cmd line --debugger == true")
|
|
go func() {
|
|
log.Sleep(2)
|
|
debugger.DebugWindow()
|
|
}()
|
|
}
|
|
}
|
|
|
|
func debug() {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
gui.Crash(r, "forge debug()")
|
|
}
|
|
}()
|
|
time.Sleep(2 * time.Second)
|
|
for {
|
|
now := time.Now()
|
|
|
|
if me.repoAllB != nil {
|
|
tmp := fmt.Sprintf("All (%d)", me.forge.Repos.Len())
|
|
me.repoAllB.SetLabel(tmp)
|
|
}
|
|
|
|
if me.repoDevelMergeB != nil {
|
|
found := findMergeToDevel()
|
|
tmp := fmt.Sprintf("needs merge to devel (%d)", found.Len())
|
|
me.repoDevelMergeB.SetLabel(tmp)
|
|
}
|
|
|
|
if me.repoWritableB != nil {
|
|
found := gitpb.NewRepos()
|
|
for repo := range me.forge.Repos.IterByFullPath() {
|
|
if me.forge.Config.IsReadOnly(repo.GetGoPath()) {
|
|
continue
|
|
}
|
|
|
|
found.AppendByFullPath(repo)
|
|
|
|
}
|
|
tmp := fmt.Sprintf("writable (%d)", found.Len())
|
|
me.repoWritableB.SetLabel(tmp)
|
|
}
|
|
|
|
dirty := me.forge.CheckDirty()
|
|
|
|
if me.repoDirtyB != nil {
|
|
tmp := fmt.Sprintf("dirty (%d)", dirty.Len())
|
|
me.repoDirtyB.SetLabel(tmp)
|
|
}
|
|
|
|
if me.reposWinB != nil {
|
|
tmp := fmt.Sprintf("Repos (%d)", me.forge.Repos.Len())
|
|
if dirty.Len() > 0 {
|
|
tmp = fmt.Sprintf("Repos (%d) (%d dirty)", me.forge.Repos.Len(), dirty.Len())
|
|
}
|
|
me.reposWinB.SetLabel(tmp)
|
|
}
|
|
|
|
// check for new patches
|
|
log.Info("should check for packages here")
|
|
// if err := me.forge.ListPatches(); err != nil {
|
|
// log.Info("List Patchsets Failed", err)
|
|
// }
|
|
|
|
log.Printf("finished a forge scan here in (%s)\n", shell.FormatDuration(time.Since(now)))
|
|
time.Sleep(90 * time.Second)
|
|
}
|
|
}
|