diff options
| author | Jeff Carr <[email protected]> | 2025-10-07 11:38:23 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-07 11:38:23 -0500 |
| commit | 557772a2409d436bc6ddab104a254b9bfb92e519 (patch) | |
| tree | 56159f1676932e6ebc7dc812aae6282499defa7d /tablePackaging.go | |
| parent | 487cb10da55cef7efe0f63758ec80c9abc5ce4d1 (diff) | |
rename
Diffstat (limited to 'tablePackaging.go')
| -rw-r--r-- | tablePackaging.go | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/tablePackaging.go b/tablePackaging.go new file mode 100644 index 0000000..7c1c897 --- /dev/null +++ b/tablePackaging.go @@ -0,0 +1,107 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +import ( + "go.wit.com/lib/protobuf/gitpb" + "go.wit.com/lib/protobuf/zoopb" + "go.wit.com/log" +) + +func isPackageOnMirrors(repo *gitpb.Repo) bool { + var found *zoopb.Package + name := me.forge.Config.DebName(repo.Namespace) + for pkg := range me.machine.Wit.IterAll() { + // log.Info(pkg) + if name == pkg.Name { + found = pkg + } + } + if found == nil { + return false + } + if found.PkgName == "" { + log.Info("found", found) + } + return true +} + +func printPackagingTable(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 = 12 + + /* + col = tablePB.AddStringFunc("is old", func(r *gitpb.Repo) string { + manufactured := r.GetCurrentVersion() + ver := trimNonNumericFromStart(manufactured) + name := me.forge.Config.DebName(r.Namespace) + 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 { + debname := me.forge.Config.DebName(r.GetNamespace()) + if me.machine.IsInstalled(debname) { + 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 isPackageOnMirrors(r) { + return "yes" + } + return "" + }) + col.Width = 5 + + col = tablePB.AddState() + col.Width = 32 + + col = tablePB.AddStringFunc("filename for .deb", func(r *gitpb.Repo) string { + name := me.forge.Config.DebName(r.Namespace) + for pkg := range me.machine.Wit.IterAll() { + if name == pkg.Name { + return pkg.PkgName + } + } + return "missing " + name + }) + col.Width = -1 + + tablePB.PrintTable() + log.Printf("wit.packagingTable() %d repos\n", pb.Len()) +} |
