diff options
| -rw-r--r-- | tablePublish.go | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/tablePublish.go b/tablePublish.go new file mode 100644 index 0000000..cbecfe0 --- /dev/null +++ b/tablePublish.go @@ -0,0 +1,79 @@ +// Copyright 2025 WIT.COM Inc Licensed GPL 3.0 + +package gitpb + +import ( + "go.wit.com/lib/gui/shell" + "go.wit.com/log" +) + +func (pb *Repos) PrintPublishTable() string { + tablePB := pb.MakePublishTable() + 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.PublishTable: total=(%d) dirty=(%d) binaries=(%d) protobufs(%d)", pb.Len(), dirty, bins, protos) +} +func (pb *Repos) MakePublishTable() *ReposTable { + t := pb.NewTable("gitpb Publish 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.AddMasterVersion() + col.Width = 12 + col.Header.Name = "master" + + col = t.AddLastTag() + col.Width = 12 + col.Header.Name = "lasttag" + + col = t.AddTargetVersion() + col.Width = 12 + col.Header.Name = "target ver" + + col = t.AddStringFunc("type", func(r *Repo) string { + return getRepoType(r) + }) + col.Width = 6 + + col = t.AddState() + col.Width = 16 + + col = t.AddStateChange() + col.Width = 20 + + col = t.AddURL() + col.Width = -1 + + return t +} |
