diff options
| author | Jeff Carr <[email protected]> | 2025-10-04 00:07:26 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-04 00:07:26 -0500 |
| commit | f50d2bcb19f2165723dcd5e5e20368561a2febc9 (patch) | |
| tree | 43fb71304799c5e5e7229bac396dffbfe5aad159 | |
| parent | 21f674cc5d222ca3fde330d5f14e556555fff183 (diff) | |
make a table here for .deb building reposv0.1.4
| -rw-r--r-- | doDebian.go | 18 | ||||
| -rw-r--r-- | tableRepos.go | 173 |
2 files changed, 175 insertions, 16 deletions
diff --git a/doDebian.go b/doDebian.go index 60b0600..63921cc 100644 --- a/doDebian.go +++ b/doDebian.go @@ -27,7 +27,7 @@ func doDebian() { } initForge() - doInstallScan() + // doInstallScan() found := gitpb.NewRepos() for check := range me.forge.Repos.IterAll() { @@ -39,24 +39,10 @@ func doDebian() { continue } - if check.IsGoPlugin() { - continue - } found.Append(check) } - tablePB := me.forge.GetBuildBaseTB(found) - log.Info("TABLE FUNC LEN=", len(tablePB.Funcs)) - col := tablePB.AddStringFunc("a", func(r *gitpb.Repo) string { - debname := me.forge.Config.DebName(r.GetNamespace()) - if actualp := me.machine.FindInstalledByName(debname); actualp != nil { - return "b" - } - return "c" - }) - col.Width = 6 - log.Info("TABLE FUNC LEN=", len(tablePB.Funcs)) - tablePB.PrintTable() + printRepos(found) // func (f *Forge) isInstalled(repo *gitpb.Repo) string { // return "X" diff --git a/tableRepos.go b/tableRepos.go new file mode 100644 index 0000000..7cdf76e --- /dev/null +++ b/tableRepos.go @@ -0,0 +1,173 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +import ( + "fmt" + "os" + "path/filepath" + "strings" + + "go.wit.com/lib/protobuf/gitpb" + "go.wit.com/log" +) + +func isPackageOnMirrors(repo *gitpb.Repo) bool { + manufactured := repo.GetCurrentVersion() + ver := trimNonNumericFromStart(manufactured) + name := me.forge.Config.DebName(repo.GetGoPath()) + if actualp := me.machine.FindByVersion(name, ver); actualp != nil { + // end += " (version match) " + actualp.Version + " " + ver + " " + // repo.State = "on mirrors" + return true + } + return false +} + +func printRepos(pb *gitpb.Repos) { + tablePB := pb.NewTable("deb details") + tablePB.NewUuid() + + var col *gitpb.RepoFunc + + col = tablePB.AddNamespace() + col.Width = 32 + + col = tablePB.AddStringFunc("RepoType", func(r *gitpb.Repo) string { + return me.forge.GetRepoType(r) + }) + col.Width = 8 + + col = tablePB.AddStringFunc("Build Version", func(r *gitpb.Repo) string { + return me.forge.GetPackageVersion(r) + }) + col.Width = 24 + + col = tablePB.AddStringFunc("is old", func(r *gitpb.Repo) string { + manufactured := r.GetCurrentVersion() + ver := trimNonNumericFromStart(manufactured) + name := me.forge.Config.DebName(r.GetGoPath()) + if actualp := me.machine.FindByVersion(name, ver); actualp != nil { + // end += " (version match) " + actualp.Version + " " + ver + " " + return "" + } + if installedPackage := me.machine.FindInstalledByName(name); installedPackage != nil { + return installedPackage.Version + } + return "" + }) + col.Width = 10 + + col = tablePB.AddStringFunc("I", func(r *gitpb.Repo) string { + name := me.forge.Config.DebName(r.GetNamespace()) + if me.machine.IsInstalled(name) { + return "X" + } + // debname := me.forge.Config.DebName(r.GetNamespace()) + // if actualp := me.machine.FindInstalledByName(debname); actualp != nil { + // return "X" + // } + return "" + }) + col.Width = 1 + + col = tablePB.AddStringFunc("done", func(r *gitpb.Repo) string { + if isPackageOnMirrors(r) { + return "yes" + } + return "" + }) + col.Width = 4 + + col = tablePB.AddStringFunc("build", func(r *gitpb.Repo) string { + if willBuild(r) { + return "yes" + } + return "" + }) + col.Width = 5 + + col = tablePB.AddStringFunc("deb name", func(r *gitpb.Repo) string { + name := me.forge.Config.DebName(r.GetNamespace()) + ver := me.forge.GetPackageVersion(r) + debname := name + "_" + ver + "_amd64.deb" + return debname + }) + col.Width = 32 + + col = tablePB.AddState() + col.Width = 32 + + col = tablePB.AddStringFunc("end", func(r *gitpb.Repo) string { + return getStatusEnd(r) + }) + col.Width = -1 + + tablePB.PrintTable() +} + +func getStatusEnd(repo *gitpb.Repo) string { + var end string + + manufactured := repo.GetCurrentVersion() + ver := trimNonNumericFromStart(manufactured) + name := me.forge.Config.DebName(repo.GetGoPath()) + var realver string + if installedPackage := me.machine.FindInstalledByName(name); installedPackage != nil { + realver = installedPackage.Version + } + if actualp := me.machine.FindByVersion(name, ver); actualp != nil { + // end += " (version match) " + actualp.Version + " " + ver + " " + // repo.State = "on mirrors" + } else { + if realver != "" { + end += fmt.Sprintf(" (version miss) %s vs %s ", realver, ver) + } + // end += "" + ver + " " + } + + debname := name + "_" + ver + "_amd64.deb" + // debnames[repo] = debname + outdir := getOutdir(repo) + _, err := os.Stat(filepath.Join(outdir, debname)) + if err == nil { + // log.Info("exists", filepath.Join(outdir, debname)) + repo.State = "in incoming" + } else { + // log.Info(debname, "does not exist") + } + if strings.HasPrefix(repo.GetState(), "unknown bran") { + end += " (will build) " + } + + if repo.State == "" { + end += " (will build) " + } + + if repo.State == "need to build" { + end += " (will build) " + } + + if name == "" { + // err := fmt.Sprintf("name is blank error %+v", repo) + log.Warn("name is blank error", repo.GetGoPath()) + } + return end +} + +func willBuild(repo *gitpb.Repo) bool { + if strings.HasPrefix(repo.GetState(), "unknown bran") { + return true + } + + if repo.State == "" { + return true + } + + if repo.State == "need to build" { + return true + } + + return false +} |
