diff options
Diffstat (limited to 'tableSmart.go')
| -rw-r--r-- | tableSmart.go | 42 |
1 files 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 { |
