addons list corrections

pull/21288/head
pavansaikrishna78 2025-09-15 22:12:44 +05:30
parent b3a9d84d38
commit 81cf4096e6
3 changed files with 34 additions and 32 deletions

View File

@ -30,6 +30,7 @@ import (
"github.com/fatih/color"
"k8s.io/klog/v2"
"k8s.io/minikube/pkg/minikube/assets"
pkgcolor "k8s.io/minikube/pkg/minikube/color"
"k8s.io/minikube/pkg/minikube/config"
"k8s.io/minikube/pkg/minikube/exit"
"k8s.io/minikube/pkg/minikube/mustload"
@ -94,28 +95,28 @@ var stringFromStatus = func(addonStatus bool) string {
var printAddonsList = func(cc *config.ClusterConfig, printDocs bool) {
addonNames := slices.Sorted(maps.Keys(assets.Addons))
table := tablewriter.NewWriter(os.Stdout)
table.Options(tablewriter.WithHeaderAutoFormat(tw.On))
table.Options(
tablewriter.WithHeaderAutoFormat(tw.On),
)
// Table header
header := []string{"Addon Name", "Maintainer"}
theader := []string{"Addon Name", "Maintainer"}
if cc != nil {
header = []string{"Addon Name", "Enabled", "Maintainer"}
theader = []string{"Addon Name", "Enabled", "Maintainer"}
}
if printDocs {
header = append(header, "Docs")
theader = append(theader, "Docs")
}
table.Header(header)
table.Header(theader)
var rows [][]string
for _, addonName := range addonNames {
addonBundle := assets.Addons[addonName]
maintainer := addonBundle.Maintainer
if maintainer == "" {
maintainer = "3rd party (unknown)"
}
docs := addonBundle.Docs
if docs == "" {
docs = "n/a"
@ -136,9 +137,9 @@ var printAddonsList = func(cc *config.ClusterConfig, printDocs bool) {
// Step 2: apply coloring
switch {
case enabled:
ColorRow(row, color.GreenString)
pkgcolor.ColorRow(row, color.GreenString)
default:
ColorRow(row, color.WhiteString)
pkgcolor.ColorRow(row, color.WhiteString)
}
}
@ -162,26 +163,6 @@ var printAddonsList = func(cc *config.ClusterConfig, printDocs bool) {
}
}
// ----------------
// Helpers
// ----------------
// colorFunc allows generic coloring
type colorFunc func(string, ...interface{}) string
func isEmoji(s string) bool {
return strings.Contains(s, "✅")
}
func ColorRow(row []string, colored colorFunc) {
for i := range row {
if row[i] == "" || isEmoji(row[i]) {
continue
}
row[i] = colored("%s", row[i])
}
}
var printAddonsJSON = func(cc *config.ClusterConfig) {
addonNames := slices.Sorted(maps.Keys(assets.Addons))
addonsMap := map[string]map[string]interface{}{}

View File

@ -32,6 +32,7 @@ import (
"k8s.io/minikube/pkg/minikube/out"
"k8s.io/minikube/pkg/minikube/reason"
"k8s.io/minikube/pkg/minikube/style"
pkgcolor "k8s.io/minikube/pkg/minikube/color"
"github.com/docker/machine/libmachine"
"github.com/fatih/color"
@ -191,11 +192,11 @@ func profilesToTableData(profiles []*config.Profile) [][]string {
// Apply coloring based on status
switch p.Status {
case "OK":
ColorRow(row, color.GreenString)
pkgcolor.ColorRow(row, color.GreenString)
case "Stopped", "Paused":
ColorRow(row, color.YellowString)
pkgcolor.ColorRow(row, color.YellowString)
default:
ColorRow(row, color.WhiteString)
pkgcolor.ColorRow(row, color.WhiteString)
}
data = append(data, row)

View File

@ -0,0 +1,20 @@
package color
// colorFunc allows generic coloring
type colorFunc func(string, ...interface{}) string
func isEmoji(s string) bool {
if s == "✅" {
return true
}
return false
}
func ColorRow(row []string, colored colorFunc) {
for i := range row {
if row[i] == "" || isEmoji(row[i]) {
continue
}
row[i] = colored("%s", row[i])
}
}