Skip to content

Commit 768086e

Browse files
committed
fix latest issues
- use ascii for the tree lines. Fixes #6 - verbose mode to show resource ApiGroups #7 - put main.go in the kni package. Fixes #3
1 parent 0c821a0 commit 768086e

File tree

5 files changed

+27
-19
lines changed

5 files changed

+27
-19
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
go.sum
22
kni*
3+
!cmd/kni
File renamed without changes.

pkg/cmd/inspect.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ import (
1515
type InspectCmdOptions struct {
1616
ui ui.UI
1717

18-
Debug bool
19-
opts insp.InspectorOptions
18+
Debug bool
19+
Verbose bool
20+
opts insp.InspectorOptions
2021

2122
kubeconfigFlags flags.KubeconfigFlags
2223
namespaceFlags flags.NamespaceFlags
@@ -34,6 +35,7 @@ func NewInspectCmd(o *InspectCmdOptions) *cobra.Command {
3435
RunE: func(_ *cobra.Command, _ []string) error { return o.Run() },
3536
}
3637
cmd.Flags().BoolVar(&o.Debug, "debug", false, "Enable debug output")
38+
cmd.Flags().BoolVarP(&o.Verbose, "verbose", "v", false, "Show verbose output")
3739
cmd.Flags().StringSliceVarP(&o.opts.Services, "service", "s", []string{}, "Knative services to inspect (can be specified multiple times)")
3840

3941
o.kubeconfigFlags.Set(cmd)
@@ -62,6 +64,6 @@ func (o *InspectCmdOptions) inspect() error {
6264
return err
6365
}
6466

65-
kiui.TreeView{Source: strings.Join(o.opts.Services, ","), ResourceMap: result}.Print(o.ui)
67+
kiui.TreeView{Source: strings.Join(o.opts.Services, ","), ResourceMap: result, Verbose: o.Verbose}.Print(o.ui)
6668
return nil
6769
}

pkg/cmd/ui/tree_view.go

+20-15
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55
"io"
66
"sort"
7+
78
"strings"
89

910
"github.com/cppforlife/go-cli-ui/ui"
@@ -17,14 +18,15 @@ type TreeView struct {
1718
Source string
1819
ResourceMap [][]krsc.Resource
1920
Sort bool
21+
Verbose bool
2022
}
2123

2224
func (v TreeView) Print(ui ui.UI) {
2325
groupHeader := uitable.NewHeader("Group")
2426
groupHeader.Hidden = true
2527

2628
versionHeader := uitable.NewHeader("Version")
27-
versionHeader.Hidden = true
29+
versionHeader.Hidden = !v.Verbose
2830

2931
table := uitable.Table{
3032
Title: fmt.Sprintf("Resources in %s", v.Source),
@@ -34,8 +36,8 @@ func (v TreeView) Print(ui ui.UI) {
3436
groupHeader,
3537
uitable.NewHeader("Namespace"),
3638
uitable.NewHeader("Name"),
37-
uitable.NewHeader("Kind"),
3839
versionHeader,
40+
uitable.NewHeader("Kind"),
3941
uitable.NewHeader("Ready"),
4042
uitable.NewHeader("Reason"),
4143
},
@@ -148,6 +150,7 @@ func (v TreeView) addBlankRow(table *uitable.Table) {
148150
uitable.NewValueString(" "),
149151
uitable.NewValueString(" "),
150152
uitable.NewValueString(" "),
153+
uitable.NewValueString(" "),
151154
}
152155
table.Rows = append(table.Rows, row)
153156
}
@@ -172,24 +175,26 @@ func (v TreeView) addRows(table *uitable.Table, rt resourceTree, depth int, conn
172175

173176
var delim string
174177
if depth > 0 {
175-
delim = fmt.Sprintf("%sL ", connector)
178+
delim = fmt.Sprintf("%sL", connector)
179+
if !hasSibling {
180+
delim += "_"
181+
}
182+
delim += " "
176183
}
177184

178-
delim = strings.ReplaceAll(delim, "|L", "L")
179-
180185
row := []uitable.Value{
181186
uitable.NewValueString(""),
182187
uitable.NewValueString(resource.Namespace()),
183188
uitable.NewValueString(resource.Name()),
184-
ValueColored{
189+
uitable.NewValueString(resource.APIVersion()),
190+
ValueEncoded{
185191
S: delim + resource.Kind(),
186192
Func: func(str string, opts ...interface{}) string {
187193
result := fmt.Sprintf(str, opts...)
188-
return strings.Replace(result, delim, color.New(color.Faint).Sprintf("%s", delim), -1)
194+
return strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll(result, "|L", "├─"), "|", "│"), "L_", "└─")
189195
},
190196
},
191-
uitable.NewValueString(resource.APIVersion()),
192-
ValueColored{
197+
ValueEncoded{
193198
S: msg,
194199
Func: func(str string, opts ...interface{}) string {
195200
result := fmt.Sprintf(str, opts...)
@@ -202,7 +207,7 @@ func (v TreeView) addRows(table *uitable.Table, rt resourceTree, depth int, conn
202207
return result
203208
},
204209
},
205-
ValueColored{
210+
ValueEncoded{
206211
S: reason,
207212
Func: func(str string, opts ...interface{}) string {
208213
result := fmt.Sprintf(str, opts...)
@@ -227,15 +232,15 @@ func (v TreeView) addRows(table *uitable.Table, rt resourceTree, depth int, conn
227232
}
228233
}
229234

230-
type ValueColored struct {
235+
type ValueEncoded struct {
231236
S string
232237
Func func(string, ...interface{}) string
233238
}
234239

235-
func (t ValueColored) String() string { return t.S }
236-
func (t ValueColored) Value() uitable.Value { return t }
237-
func (t ValueColored) Compare(other uitable.Value) int { panic("Never called") }
240+
func (t ValueEncoded) String() string { return t.S }
241+
func (t ValueEncoded) Value() uitable.Value { return t }
242+
func (t ValueEncoded) Compare(other uitable.Value) int { panic("Never called") }
238243

239-
func (t ValueColored) Fprintf(w io.Writer, pattern string, rest ...interface{}) (int, error) {
244+
func (t ValueEncoded) Fprintf(w io.Writer, pattern string, rest ...interface{}) (int, error) {
240245
return fmt.Fprintf(w, "%s", t.Func(pattern, rest...))
241246
}

pkg/cmd/version.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
)
99

1010
const (
11-
Version = "0.1.0"
11+
Version = "0.2.0"
1212
)
1313

1414
type VersionOptions struct {

0 commit comments

Comments
 (0)