@@ -36,6 +36,7 @@ import (
36
36
)
37
37
38
38
var addonListOutput string
39
+ var addonPrintDocs bool
39
40
40
41
// AddonListTemplate represents the addon list template
41
42
type AddonListTemplate struct {
@@ -58,7 +59,7 @@ var addonsListCmd = &cobra.Command{
58
59
}
59
60
switch strings .ToLower (addonListOutput ) {
60
61
case "list" :
61
- printAddonsList (cc )
62
+ printAddonsList (cc , addonPrintDocs )
62
63
case "json" :
63
64
printAddonsJSON (cc )
64
65
default :
@@ -68,13 +69,8 @@ var addonsListCmd = &cobra.Command{
68
69
}
69
70
70
71
func init () {
71
- addonsListCmd .Flags ().StringVarP (
72
- & addonListOutput ,
73
- "output" ,
74
- "o" ,
75
- "list" ,
76
- `minikube addons list --output OUTPUT. json, list` )
77
-
72
+ addonsListCmd .Flags ().StringVarP (& addonListOutput , "output" , "o" , "list" , "minikube addons list --output OUTPUT. json, list" )
73
+ addonsListCmd .Flags ().BoolVarP (& addonPrintDocs , "docs" , "d" , false , "If true, print web links to addons' documentation if using --output=list (default)." )
78
74
AddonsCmd .AddCommand (addonsListCmd )
79
75
}
80
76
@@ -92,39 +88,56 @@ var stringFromStatus = func(addonStatus bool) string {
92
88
return "disabled"
93
89
}
94
90
95
- var printAddonsList = func (cc * config.ClusterConfig ) {
91
+ var printAddonsList = func (cc * config.ClusterConfig , printDocs bool ) {
96
92
addonNames := make ([]string , 0 , len (assets .Addons ))
97
93
for addonName := range assets .Addons {
98
94
addonNames = append (addonNames , addonName )
99
95
}
100
96
sort .Strings (addonNames )
101
97
102
- var tData [][]string
103
98
table := tablewriter .NewWriter (os .Stdout )
104
99
table .SetAutoFormatHeaders (true )
105
100
table .SetBorders (tablewriter.Border {Left : true , Top : true , Right : true , Bottom : true })
106
101
table .SetCenterSeparator ("|" )
102
+
103
+ // Create table header
104
+ var tHeader []string
107
105
if cc == nil {
108
- table . SetHeader ( []string {"Addon Name" , "Maintainer" })
106
+ tHeader = []string {"Addon Name" , "Maintainer" }
109
107
} else {
110
- table . SetHeader ( []string {"Addon Name" , "Profile" , "Status" , "Maintainer" })
108
+ tHeader = []string {"Addon Name" , "Profile" , "Status" , "Maintainer" }
111
109
}
110
+ if printDocs {
111
+ tHeader = append (tHeader , "Docs" )
112
+ }
113
+ table .SetHeader (tHeader )
112
114
115
+ // Create table data
116
+ var tData [][]string
117
+ var temp []string
113
118
for _ , addonName := range addonNames {
114
119
addonBundle := assets .Addons [addonName ]
115
120
maintainer := addonBundle .Maintainer
116
121
if maintainer == "" {
117
- maintainer = "unknown (third-party)"
122
+ maintainer = "3rd party (unknown)"
123
+ }
124
+ docs := addonBundle .Docs
125
+ if docs == "" {
126
+ docs = "n/a"
118
127
}
119
128
if cc == nil {
120
- tData = append (tData , []string {addonName , maintainer })
121
- continue
129
+ temp = []string {addonName , maintainer }
130
+ } else {
131
+ enabled := addonBundle .IsEnabled (cc )
132
+ temp = []string {addonName , cc .Name , fmt .Sprintf ("%s %s" , stringFromStatus (enabled ), iconFromStatus (enabled )), maintainer }
122
133
}
123
- enabled := addonBundle .IsEnabled (cc )
124
- tData = append (tData , []string {addonName , cc .Name , fmt .Sprintf ("%s %s" , stringFromStatus (enabled ), iconFromStatus (enabled )), maintainer })
134
+ if printDocs {
135
+ temp = append (temp , docs )
136
+ }
137
+ tData = append (tData , temp )
125
138
}
126
-
127
139
table .AppendBulk (tData )
140
+
128
141
table .Render ()
129
142
130
143
v , _ , err := config .ListProfiles ()
0 commit comments