diff options
| author | Jeff Carr <[email protected]> | 2025-10-10 08:57:20 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-10 08:57:20 -0500 |
| commit | 637dfccde510b19cfe6babd02b37bc2cc32e73ab (patch) | |
| tree | 26de8a80221022431ef6cf66d517ccb8c49b875c /tableMissing.go | |
| parent | 83e294fdd9e9f88eb5a3f6711bd21d64c992c546 (diff) | |
default repos table
Diffstat (limited to 'tableMissing.go')
| -rw-r--r-- | tableMissing.go | 105 |
1 files changed, 104 insertions, 1 deletions
diff --git a/tableMissing.go b/tableMissing.go index bf3c2bc..fe729dd 100644 --- a/tableMissing.go +++ b/tableMissing.go @@ -2,6 +2,11 @@ package gitpb +import ( + "go.wit.com/lib/gui/shell" + "go.wit.com/log" +) + func (pb *Repos) PrintMissingTable() { t := pb.NewTable("missing repos table") t.NewUuid() @@ -15,7 +20,7 @@ func (pb *Repos) PrintMissingTable() { col.Width = -1 /* - col = t.AddStringFunc("hash", func(r *gitpb.Repo) string { + col = t.AddStringFunc("hash", func(r *Repo) string { if r.Tags == nil { return "nil" } @@ -28,3 +33,101 @@ func (pb *Repos) PrintMissingTable() { */ t.PrintTable() } + +func getRepoType(repo *Repo) string { + var rtype string = repo.GetRepoType() + switch rtype { + case "binary": + rtype = "GO bin" + case "library": + rtype = "GO lib" + case "protobuf": + rtype = "GO pb" + } + // if f.IsPrivate(repo) { + // rtype = "priv" + // } + return rtype +} + +func (pb *Repos) PrintDefaultTB() string { + tablePB := pb.MakeDefaultTB() + tablePB.PrintTable() + var dirty int + // var writable int // need forge to determine this + var bins int + var protos int + for repo := range pb.IterAll() { + if repo.IsDirty() { + dirty += 1 + } + if repo.IsBinary() { + bins += 1 + } + if repo.IsProtobuf() { + protos += 1 + } + } + return log.Sprintf("gitpb.DefaultRepos: total=(%d) dirty=(%d) binaries=(%d) protobufs(%d)", pb.Len(), dirty, bins, protos) +} +func (pb *Repos) MakeDefaultTB() *ReposTable { + t := pb.NewTable("gitpb Default Table") + t.NewUuid() + + var col *RepoFunc + + col = t.AddNamespace() + col.Width = 33 + + col = t.AddCurrentBranchName() + col.Width = 7 + col.Header.Name = "current" + + col = t.AddStringFunc("age", func(r *Repo) string { + if r.IsDirty() { + return "" + } + dur := r.NewestAge() + return shell.FormatDuration(dur) + }) + col.Width = 3 + + col = t.AddStringFunc("user", func(r *Repo) string { + ver := r.GetUserVersion() + if r.IsDirty() { + ver = "* " + ver + } + return ver + }) + col.Width = 14 + + col = t.AddDevelVersion() + col.Width = 12 + col.Header.Name = "devel" + + col = t.AddMasterVersion() + col.Width = 12 + col.Header.Name = "master" + + col = t.AddStringFunc("type", func(r *Repo) string { + return getRepoType(r) + }) + col.Width = 6 + + /* + col = t.AddStringFunc("r/w", func(r *Repo) string { + if f.IsWritable(r) { + return "rw" + } + return "" + }) + col.Width = 3 + */ + + col = t.AddState() + col.Width = 12 + + col = t.AddURL() + col.Width = 42 + return t +} |
