58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
"time"
|
|
|
|
"go.fanir.de/statusline/config"
|
|
"go.fanir.de/statusline/cpu"
|
|
"go.fanir.de/statusline/mem"
|
|
)
|
|
|
|
func Print(s string, err error) {
|
|
if err != nil {
|
|
panic(err) // FIXME
|
|
}
|
|
fmt.Print(s)
|
|
}
|
|
|
|
func Time(format config.Format, timeFormat string) string {
|
|
now := time.Now()
|
|
|
|
return fmt.Sprint(format.Default, now.Format(timeFormat))
|
|
}
|
|
|
|
func main() {
|
|
cols := flag.Uint("c", 0, "Window width in columns. 0 prints everything.")
|
|
mode := flag.String("style", "none", "Include style directives in output. Valid values: none tmux")
|
|
flag.Parse()
|
|
|
|
format := config.DefaultFormat
|
|
switch *mode {
|
|
case "", "none":
|
|
case "tmux":
|
|
format = config.TmuxFormat
|
|
default:
|
|
fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0])
|
|
flag.PrintDefaults()
|
|
os.Exit(2)
|
|
}
|
|
|
|
if *cols == 0 || *cols >= 150 {
|
|
Print(cpu.Load(format, 2))
|
|
Print(mem.Mem(format, true, true))
|
|
fmt.Print(Time(format, " Mon 2006-01-02 15:04"))
|
|
} else if *cols >= 120 {
|
|
Print(cpu.Load(format, 2))
|
|
Print(mem.Mem(format, false, true))
|
|
fmt.Print(Time(format, " 15:04"))
|
|
} else if *cols >= 100 {
|
|
Print(cpu.Load(format, 0))
|
|
Print(mem.Mem(format, false, true))
|
|
fmt.Print(Time(format, " 15:04"))
|
|
} else if *cols >= 80 {
|
|
fmt.Print(Time(format, "15:04"))
|
|
}
|
|
}
|