From 7b7b47d0d6a9d7e134be74df3a058247b38f2603 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Fri, 24 Oct 2025 02:37:20 -0500 Subject: split the version & build counter --- tableSmart.go | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/tableSmart.go b/tableSmart.go index 28ffeb2..d05fbad 100644 --- a/tableSmart.go +++ b/tableSmart.go @@ -3,6 +3,10 @@ package zoopb import ( + "fmt" + "strconv" + "strings" + "go.wit.com/lib/cobol" "go.wit.com/log" ) @@ -39,9 +43,42 @@ func (m *Machine) PrintInstalledTable() { func (t *PackagesTable) AddSmartVersion() *PackageFunc { sf := t.AddStringFunc("Version", func(m *Package) string { - return m.Version + version := m.Version + if strings.Contains(version, "+b") { + parts := strings.Split(version, "+b") + if len(parts) == 2 { + version = parts[0] + } + } + if strings.HasSuffix(version, "-0") { + version = version[0 : len(version)-2] + } + return version + }) + sf.Width = 12 + return sf +} + +func (p *Package) GetBuildCount() int { + bcount := 0 + if strings.Contains(p.Version, "+b") { + parts := strings.Split(p.Version, "+b") + if len(parts) == 2 { + bcount, _ = strconv.Atoi(parts[1]) + } + } + return bcount +} + +func (t *PackagesTable) AddBuildCount() *PackageFunc { + sf := t.AddStringFunc(" b#", func(m *Package) string { + bcount := m.GetBuildCount() + if bcount == 0 { + return "" + } + return fmt.Sprintf("+b%d", bcount) }) - sf.Width = 16 + sf.Width = 5 return sf } @@ -66,6 +103,7 @@ func (m *Machine) makeSmartTable(pb *Packages) *PackagesTable { col.Width = 16 col = t.AddSmartVersion() + col = t.AddBuildCount() col = t.AddStringFunc("mirrors .deb ctime", func(p *Package) string { if p.DebInfo == nil { -- cgit v1.2.3