summaryrefslogtreecommitdiff
path: root/tableSmart.go
diff options
context:
space:
mode:
Diffstat (limited to 'tableSmart.go')
-rw-r--r--tableSmart.go42
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 {