summaryrefslogtreecommitdiff
path: root/validate/main.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-12-01 19:27:30 -0600
committerJeff Carr <[email protected]>2024-12-01 19:27:30 -0600
commit9d95b189135422a720cb00f8b0ca8546e7fdc9b5 (patch)
tree34299ad83167152bf4681b4264751b5c4f9cdf50 /validate/main.go
Day 1. pull these out from protobuf librariesv0.0.2v0.0.1
Diffstat (limited to 'validate/main.go')
-rw-r--r--validate/main.go97
1 files changed, 97 insertions, 0 deletions
diff --git a/validate/main.go b/validate/main.go
new file mode 100644
index 0000000..7c32ac6
--- /dev/null
+++ b/validate/main.go
@@ -0,0 +1,97 @@
+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()
+ if ! repo.IsValid() {
+ continue
+ }
+ // 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 %s\n", fullpath, mName, dName, uName, ds, ps, repo.RepoType())
+ /*
+ 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())
+ }
+ */
+ }
+
+ if argv.Repo == "" {
+ log.Info("no --repo")
+ os.Exit(-1)
+ }
+
+ check := forge.Repos.FindByGoPath(argv.Repo)
+ if check == nil {
+ log.Info("boo, you didn't git check", argv.Repo)
+ os.Exit(-1)
+ }
+ check.RedoGoMod()
+
+ match, err := forge.Repos.GoDepsChanged(check)
+ if err != nil {
+ log.Info("dependancy checks failed", check.GetGoPath(), err)
+ os.Exit(-1)
+ }
+ if match {
+ log.Printf("dependancy checks indicate a new release is needed for %s\n", check.GetGoPath())
+ } else {
+ log.Printf("dependancies have not changed for %s\n", check.GetGoPath())
+ }
+
+ if argv.SaveConfig {
+ forge.Repos.ConfigSave()
+ }
+
+ os.Exit(0)
+}