58
package main
import (
"fmt"
"git.sophuwu.com/statlog"
"git.sophuwu.com/statlog/types"
"os"
"os/signal"
)
func fatal(e error) {
if e != nil {
fmt.Println("\033[?1049l\033[?25h")
os.Exit(1)
}
}
func main() {
fmt.Println("\033[?25l\033[?1049h\033[2J")
defer fmt.Println("\033[?1049l\033[?25h")
hw := &statlog.HWInfo{}
ch := make(chan os.Signal, 1)
bl := true
go func() {
signal.Notify(ch, os.Interrupt, os.Kill)
<-ch
bl = false
}()
var s string
var ss string
var e error
var fn func(w, h, val int) (string, error)
fn, e = types.Graph("CPU Load", 100)
w, _ := types.TermSize()
fatal(e)
for bl {
s = ""
hw.Update()
w, _ = types.TermSize()
ss, e = fn(w/2, 4, int(hw.CPU.LoadAvg))
fatal(e)
s += ss + "\n\n"
// s += "MEM: " + hw.MEM.String()
// s += "\nCPU: " + hw.CPU.MHzAvg.String() + " MHz " + hw.CPU.Temp.String() + "\n\n"
// ss, e = hw.CPU.LoadAvg.Bar("CPU Avg", 0)
// fatal(e)
// s += ss + "\n\n"
// ss, e = hw.MEM.Bar()
// fatal(e)
// s += ss + "\n\nCPU CORES:\n\n"
// ss, e = hw.CPU.LoadBar()
// fatal(e)
// s += ss + "\n"
fmt.Printf("\033[2J\033[1;1H\r%s\n", s)
}
}