diff --git a/cli/app/list.go b/cli/app/list.go index bf314950..7c21c1f9 100644 --- a/cli/app/list.go +++ b/cli/app/list.go @@ -1,6 +1,7 @@ package app import ( + "fmt" "sort" "strings" @@ -81,6 +82,13 @@ can take some time. table := abraFormatter.CreateTable(tableCol) table.SetAutoMergeCellsByColumnIndex([]int{0}) + var ( + versionedAppsCount int + unversionedAppsCount int + onLatestCount int + canUpgradeCount int + ) + for _, app := range apps { var tableRow []string if app.Type == appType || appType == "" { @@ -98,8 +106,10 @@ can take some time. status = statusMeta["status"] } tableRow = append(tableRow, status, version) + versionedAppsCount++ } else { tableRow = append(tableRow, status, version) + unversionedAppsCount++ } var newUpdates []string @@ -131,6 +141,7 @@ can take some time. tableRow = append(tableRow, "unknown") } else { tableRow = append(tableRow, "on latest") + onLatestCount++ } } else { // FIXME: jeezus golang why do you not have a list reverse function @@ -138,12 +149,23 @@ can take some time. newUpdates[i], newUpdates[j] = newUpdates[j], newUpdates[i] } tableRow = append(tableRow, strings.Join(newUpdates, "\n")) + canUpgradeCount++ } } } table.Append(tableRow) } + stats := fmt.Sprintf( + "Total apps: %v | Versioned: %v | Unversioned: %v | On latest: %v | Can upgrade: %v", + len(apps), + versionedAppsCount, + unversionedAppsCount, + onLatestCount, + canUpgradeCount, + ) + + table.SetCaption(true, stats) table.Render() return nil