From 42a949c5aa533e7bc3c58814a33a19cc26482ac0 Mon Sep 17 00:00:00 2001 From: Caleb Bassi Date: Wed, 23 May 2018 18:52:35 -0700 Subject: Add detailed memory usage labels to memory widget --- Gopkg.lock | 2 +- src/widgets/cpu.go | 2 ++ src/widgets/mem.go | 9 +++++++++ vendor/github.com/cjbassi/termui/linegraph.go | 9 ++++----- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 63c504c..3edc277 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -17,7 +17,7 @@ branch = "master" name = "github.com/cjbassi/termui" packages = ["."] - revision = "87dbce7f69558bede7c7c7a51324ce4d8cfcb87b" + revision = "9d77ad53bd1562d72b66b7ab5965e6495955846e" [[projects]] branch = "master" diff --git a/src/widgets/cpu.go b/src/widgets/cpu.go index d93af5a..e2db390 100644 --- a/src/widgets/cpu.go +++ b/src/widgets/cpu.go @@ -67,9 +67,11 @@ func (self *CPU) update() { key := "CPU" + strconv.Itoa(i) percent := percents[i] self.Data[key] = append(self.Data[key], percent) + self.Labels[key] = fmt.Sprintf("%3.0f%%", percent) } } else { percent, _ := psCPU.Percent(self.interval, false) self.Data["Average"] = append(self.Data["Average"], percent[0]) + self.Labels["Average"] = fmt.Sprintf("%3.0f%%", percent[0]) } } diff --git a/src/widgets/mem.go b/src/widgets/mem.go index 5b80c4d..9fcaf88 100644 --- a/src/widgets/mem.go +++ b/src/widgets/mem.go @@ -1,8 +1,10 @@ package widgets import ( + "fmt" "time" + "github.com/cjbassi/gotop/src/utils" ui "github.com/cjbassi/termui" psMem "github.com/shirou/gopsutil/mem" ) @@ -39,4 +41,11 @@ func (self *Mem) update() { swap, _ := psMem.SwapMemory() self.Data["Main"] = append(self.Data["Main"], main.UsedPercent) self.Data["Swap"] = append(self.Data["Swap"], swap.UsedPercent) + + mainTotalBytes, mainTotalMagnitude := utils.ConvertBytes(main.Total) + swapTotalBytes, swapTotalMagnitude := utils.ConvertBytes(swap.Total) + mainUsedBytes, mainUsedMagnitude := utils.ConvertBytes(main.Used) + swapUsedBytes, swapUsedMagnitude := utils.ConvertBytes(swap.Used) + self.Labels["Main"] = fmt.Sprintf("%3.0f%% %.0f%s/%.0f%s", main.UsedPercent, mainUsedBytes, mainUsedMagnitude, mainTotalBytes, mainTotalMagnitude) + self.Labels["Swap"] = fmt.Sprintf("%3.0f%% %.0f%s/%.0f%s", swap.UsedPercent, swapUsedBytes, swapUsedMagnitude, swapTotalBytes, swapTotalMagnitude) } diff --git a/vendor/github.com/cjbassi/termui/linegraph.go b/vendor/github.com/cjbassi/termui/linegraph.go index cc71e8f..72e47ac 100644 --- a/vendor/github.com/cjbassi/termui/linegraph.go +++ b/vendor/github.com/cjbassi/termui/linegraph.go @@ -1,7 +1,6 @@ package termui import ( - "fmt" "sort" drawille "github.com/cjbassi/drawille-go" @@ -13,6 +12,7 @@ type LineGraph struct { Data map[string][]float64 LineColor map[string]Color Zoom int + Labels map[string]string DefaultLineColor Color } @@ -23,6 +23,7 @@ func NewLineGraph() *LineGraph { Block: NewBlock(), Data: make(map[string][]float64), LineColor: make(map[string]Color), + Labels: make(map[string]string), Zoom: 5, DefaultLineColor: Theme.LineGraph, @@ -103,17 +104,15 @@ func (self *LineGraph) Buffer() *Buffer { } } - // renders key ontop + // renders key/label ontop for j, seriesName := range seriesList { - // sorts lines again - seriesData := self.Data[seriesName] seriesLineColor, ok := self.LineColor[seriesName] if !ok { seriesLineColor = self.DefaultLineColor } // render key ontop, but let braille be drawn over space characters - str := fmt.Sprintf("%s %3.0f%%", seriesName, seriesData[len(seriesData)-1]) + str := seriesName + " " + self.Labels[seriesName] for k, char := range str { if char != ' ' { buf.SetCell(3+k, j+2, Cell{char, seriesLineColor, self.Bg}) -- cgit v1.2.3