refactor + clean up

mine
derailed 2019-06-18 22:13:09 -06:00
parent 637894bde6
commit 81ef0ae0ec
2 changed files with 62 additions and 40 deletions

View File

@ -60,6 +60,8 @@ func newBenchView(_ string, app *appView, _ resource.List) resourceViewer {
v.AddPage("table", tv, true, true) v.AddPage("table", tv, true, true)
details := newDetailsView(app, v.backCmd) details := newDetailsView(app, v.backCmd)
details.setCategory("Bench")
details.SetTextColor(app.styles.FgColor())
v.AddPage("details", details, true, false) v.AddPage("details", details, true, false)
v.registerActions() v.registerActions()
@ -133,27 +135,19 @@ func (v *benchView) enterCmd(evt *tcell.EventKey) *tcell.EventKey {
if v.getTV().cmdBuff.isActive() { if v.getTV().cmdBuff.isActive() {
return v.getTV().filterCmd(evt) return v.getTV().filterCmd(evt)
} }
if v.selectedItem == "" {
sel := v.selectedItem
if sel == "" {
return nil return nil
} }
dir := filepath.Join(K9sBenchDir, v.app.config.K9s.CurrentCluster)
data, err := ioutil.ReadFile(filepath.Join(dir, sel)) data, err := v.loadBenchFile(v.selectedItem)
if err != nil { if err != nil {
log.Error().Err(err).Msg("Read failed") log.Error().Err(err).Msg("Read failed")
v.app.flash().errf("Unable to load bench file %s", err) v.app.flash().errf("Unable to load bench file %s", err)
return nil return nil
} }
vu := v.getDetails() vu := v.getDetails()
vu.Clear() vu.SetText(data)
fmt.Fprintln(vu, string(data)) vu.setTitle(v.selectedItem)
{
vu.setCategory("Bench")
vu.setTitle(sel)
vu.SetTextColor(tcell.ColorAqua)
vu.ScrollToBeginning()
}
v.SwitchToPage("details") v.SwitchToPage("details")
return nil return nil
@ -192,8 +186,60 @@ func (v *benchView) hints() hints {
return v.CurrentPage().Item.(hinter).hints() return v.CurrentPage().Item.(hinter).hints()
} }
func (v *benchView) benchDir() string {
return filepath.Join(K9sBenchDir, v.app.config.K9s.CurrentCluster)
}
func (v *benchView) loadBenchDir() ([]os.FileInfo, error) {
return ioutil.ReadDir(v.benchDir())
}
func (v *benchView) loadBenchFile(n string) (string, error) {
data, err := ioutil.ReadFile(filepath.Join(v.benchDir(), n))
if err != nil {
return "", err
}
return string(data), nil
}
func (v *benchView) hydrate() resource.TableData { func (v *benchView) hydrate() resource.TableData {
data := resource.TableData{ ff, err := v.loadBenchDir()
if err != nil {
log.Error().Err(err).Msg("Reading bench dir")
v.app.flash().errf("Unable to read bench directory %s", err)
}
data := initTable()
blank := make(resource.Row, len(benchHeader))
for _, f := range ff {
bench, err := v.loadBenchFile(f.Name())
if err != nil {
log.Error().Err(err).Msgf("Unable to load bench file %s", f.Name())
continue
}
tokens := strings.Split(f.Name(), "_")
fields := resource.Row{
0: tokens[0],
1: tokens[1],
7: f.Name(),
8: time.Since(f.ModTime()).String(),
}
augmentRow(fields, bench)
data.Rows[f.Name()] = &resource.RowEvent{
Action: resource.New,
Fields: fields,
Deltas: blank,
}
}
return data
}
// ----------------------------------------------------------------------------
// Helpers...
func initTable() resource.TableData {
return resource.TableData{
Header: benchHeader, Header: benchHeader,
Rows: make(resource.RowEvents, 10), Rows: make(resource.RowEvents, 10),
NumCols: map[string]bool{ NumCols: map[string]bool{
@ -204,30 +250,6 @@ func (v *benchView) hydrate() resource.TableData {
}, },
Namespace: resource.AllNamespaces, Namespace: resource.AllNamespaces,
} }
dir := filepath.Join(K9sBenchDir, v.app.config.K9s.CurrentCluster)
ff, err := ioutil.ReadDir(dir)
if err != nil {
log.Error().Err(err).Msg("Reading bench dir")
v.app.flash().errf("Unable to read bench directory %s", err)
}
for _, f := range ff {
bench, err := ioutil.ReadFile(filepath.Join(dir, f.Name()))
if err != nil {
continue
}
tokens := strings.Split(f.Name(), "_")
fields := resource.Row{0: tokens[0], 1: tokens[1], 7: f.Name(), 8: time.Since(f.ModTime()).String()}
augmentRow(fields, string(bench))
data.Rows[f.Name()] = &resource.RowEvent{
Action: resource.New,
Fields: fields,
Deltas: fields,
}
}
return data
} }
func augmentRow(fields resource.Row, data string) { func augmentRow(fields resource.Row, data string) {

View File

@ -217,9 +217,9 @@ func (v *detailsView) decorateLines(buff, q string) string {
if m := rx.FindString(l); len(m) > 0 { if m := rx.FindString(l); len(m) > 0 {
lines[i] = rx.ReplaceAllString(l, fmt.Sprintf(`["%d"]%s[""]`, v.numSelections, m)) lines[i] = rx.ReplaceAllString(l, fmt.Sprintf(`["%d"]%s[""]`, v.numSelections, m))
v.numSelections++ v.numSelections++
} else { continue
lines[i] = l
} }
lines[i] = l
} }
return strings.Join(lines, "\n") return strings.Join(lines, "\n")
} }