move colors into constants

This commit is contained in:
2023-04-14 23:03:54 +02:00
parent 285d676bfd
commit 27ef0bf659

View File

@@ -20,6 +20,13 @@ var (
Host = flag.String("host", "google.com", "host to ping") Host = flag.String("host", "google.com", "host to ping")
) )
//goland:noinspection ALL
const (
CritColor = "ff5050"
WarnColor = "ffbf00"
ResetColor = "{F-}"
)
type WaybarOut struct { type WaybarOut struct {
Class string `json:"class"` Class string `json:"class"`
Text string `json:"text"` Text string `json:"text"`
@@ -29,31 +36,25 @@ func formatLine(stats *probing.Statistics) {
if stats.PacketLoss >= 100.0 { if stats.PacketLoss >= 100.0 {
// fontawesome/forkawesome doesn't have the fitting icon... // fontawesome/forkawesome doesn't have the fitting icon...
// so this is the utf-8 icon/emoji // so this is the utf-8 icon/emoji
fmt.Println("%{F#ff7070}🚫") fmt.Printf("%%{F#%s}🚫\n", CritColor)
return return
} }
var rttColor string rttColor := ResetColor
var packetColor string packetColor := ResetColor
switch { switch {
case stats.AvgRtt.Milliseconds() < 50: case int(stats.AvgRtt.Milliseconds()) >= *PingWarningLimit:
rttColor = "%{F-}" rttColor = fmt.Sprintf("%%{F#%s}", WarnColor)
case stats.AvgRtt.Milliseconds() < 100: case int(stats.AvgRtt.Milliseconds()) >= *PingCritLimit:
rttColor = "%{F#e87205}" rttColor = fmt.Sprintf("%%{F#%s}", CritColor)
default:
rttColor = "%{F#d60606}"
} }
switch { switch {
case stats.PacketLoss == 0: case int(math.Round(stats.PacketLoss)) >= *PacketLossWarnLimit:
packetColor = "%{F-}" packetColor = fmt.Sprintf("%%{F#%s}", WarnColor)
case stats.PacketLoss < 10: case int(math.Round(stats.PacketLoss)) >= *PacketLossCritLimit:
packetColor = "%{F#f9dd04}" packetColor = fmt.Sprintf("%%{F#%s}", CritColor)
case stats.PacketLoss < 25:
packetColor = "%{F#e87205}"
default:
packetColor = "%{F#d60606}"
} }
fmt.Printf("%s\uE4E2 %dms %s\uF1B2 %d%%\n", rttColor, stats.AvgRtt.Milliseconds(), packetColor, int(math.Round(stats.PacketLoss))) fmt.Printf("%s\uE4E2 %dms %s\uF1B2 %d%%\n", rttColor, stats.AvgRtt.Milliseconds(), packetColor, int(math.Round(stats.PacketLoss)))