gitpb/validate/main.go

89 lines
1.9 KiB
Go

package main
import (
"fmt"
"os"
"go.wit.com/dev/alexflint/arg"
"go.wit.com/gui"
"go.wit.com/lib/gui/repolist"
"go.wit.com/lib/protobuf/forgepb"
"go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
)
// sent via ldflags
var VERSION string
var pp *arg.Parser
var forge *forgepb.Forge
var myGui *gui.Node
var rv *repolist.RepoList
var argvRepo *gitpb.Repo
func main() {
pp = arg.MustParse(&argv)
// load the ~/.config/forge/ config
forge = forgepb.Init()
// forge.ConfigPrintTable()
os.Setenv("REPO_WORK_PATH", forge.GetGoSrc())
myGui = gui.New()
myGui.Default()
repos := forge.Repos.SortByGoPath()
for repos.Scan() {
repo := repos.Next()
// forge.VerifyBranchNames(repo)
fullpath := repo.GetFullPath()
mName := repo.GetMasterBranchName()
dName := repo.GetDevelBranchName()
uName := repo.GetUserBranchName()
dlen := repo.GoDepsLen()
plen := repo.PublishedLen()
var ds, ps string
if dlen == 0 {
ds = ""
} else {
ds = fmt.Sprintf("%2d", dlen)
}
if plen == 0 {
ps = ""
} else {
ps = fmt.Sprintf("%2d", plen)
}
log.Printf("repo: %-60s %-10s %-8s %-8s %s %s\n", fullpath, mName, dName, uName, ds, ps)
/*
if repo.GoDepsChanged() {
log.Printf("\tdependancy checks indicate a new release is needed for %s\n", repo.GetGoPath())
} else {
log.Printf("\tdependancies have not changed for %s\n", repo.GetGoPath())
}
*/
}
goclone := forge.Repos.FindByGoPath("go.wit.com/apps/go-clone")
if goclone == nil {
log.Info("boo, you didn't git go-clone?")
os.Exit(-1)
}
match, err := forge.Repos.GoDepsChanged(goclone)
if err != nil {
log.Info("dependancy checks failed", goclone.GetGoPath(), err)
os.Exit(-1)
}
if match {
log.Printf("dependancy checks indicate a new release is needed for %s\n", goclone.GetGoPath())
} else {
log.Printf("dependancies have not changed for %s\n", goclone.GetGoPath())
}
if argv.SaveConfig {
forge.Repos.ConfigSave()
}
os.Exit(0)
}