summaryrefslogtreecommitdiff
path: root/statusbar.go
diff options
context:
space:
mode:
Diffstat (limited to 'statusbar.go')
-rw-r--r--statusbar.go72
1 files changed, 38 insertions, 34 deletions
diff --git a/statusbar.go b/statusbar.go
index ee1a87f..86b0310 100644
--- a/statusbar.go
+++ b/statusbar.go
@@ -39,6 +39,7 @@ type MusicConfig struct {
LabelPlaying string `toml:"labelplaying"`
LabelPaused string `toml:"labelpaused"`
LabelStopped string `toml:"labelstopped"`
+ Type string
}
type ClockConfig struct {
@@ -46,13 +47,13 @@ type ClockConfig struct {
Format string
}
-func diskSizes(mounts []string) string {
+func diskSizes(config MountConfig) string {
var b strings.Builder
var statfs syscall.Statfs_t
const div = float64(1024 * 1024 * 1024)
const unit = "G"
sep := ""
- for _, mount := range mounts {
+ for _, mount := range config.MountPoints {
b.WriteString(sep)
err := syscall.Statfs(mount, &statfs)
if err != nil {
@@ -66,18 +67,18 @@ func diskSizes(mounts []string) string {
return b.String()
}
-func ips(interfaces []string, IPv4Only bool) string {
+func ips(config IPConfig) string {
var b strings.Builder
sep := ""
- for _, interfaceName := range interfaces {
+ for _, interfaceName := range config.Interfaces {
b.WriteString(sep)
b.WriteString(interfaceName)
b.WriteString(": ")
- if len(interfaces) > 1 {
+ if len(config.Interfaces) > 1 {
b.WriteString(" [")
}
- b.WriteString(ip(interfaceName, IPv4Only))
- if len(interfaces) > 1 {
+ b.WriteString(ip(interfaceName, config.IPv4Only))
+ if len(config.Interfaces) > 1 {
b.WriteString(" ]")
}
sep = " "
@@ -153,47 +154,50 @@ func statusMPD() int {
}
}
-func buildClock(config Config) string {
+func buildClock(config ClockConfig) string {
var b strings.Builder
- b.WriteString(config.Clock.Label)
- b.WriteString(clock(config.Clock.Format))
+ b.WriteString(config.Label)
+ b.WriteString(clock(config.Format))
return b.String()
}
-func buildIP(config Config) string {
+func buildIP(config IPConfig) string {
var b strings.Builder
- b.WriteString(config.IP.Label)
+ b.WriteString(config.Label)
b.WriteString("[ ")
- b.WriteString(ips(config.IP.Interfaces, config.IP.IPv4Only))
+ b.WriteString(ips(config))
b.WriteString(" ]")
return b.String()
}
-func buildMounts(config Config) string {
+func buildMounts(config MountConfig) string {
var b strings.Builder
- b.WriteString(config.Mounts.Label)
+ b.WriteString(config.Label)
b.WriteString("[ ")
- b.WriteString(diskSizes(config.Mounts.MountPoints))
+ b.WriteString(diskSizes(config))
b.WriteString(" ]")
return b.String()
}
-func buildMusic(config Config) string {
+func buildMusic(config MusicConfig) string {
var b strings.Builder
- isMPD := true
- switch statusMPD() {
- case 0:
- b.WriteString(config.Music.LabelPlaying)
- case 1:
- b.WriteString(config.Music.LabelPaused)
- case 2:
- b.WriteString(config.Music.LabelStopped)
+ switch config.Type {
+ case "mpd":
+ isMPD := true
+ switch statusMPD() {
+ case 0:
+ b.WriteString(config.LabelPlaying)
+ case 1:
+ b.WriteString(config.LabelPaused)
+ case 2:
+ b.WriteString(config.LabelStopped)
+ default:
+ isMPD = false
+ }
+ if isMPD {
+ b.WriteString(nowPlayingMPD())
+ }
default:
- isMPD = false
- }
- if isMPD {
- b.WriteString(nowPlayingMPD())
- b.WriteString(config.Separator)
}
return b.String()
}
@@ -220,13 +224,13 @@ func main() {
for i, section := range config.Sections {
switch section {
case "clock":
- b.WriteString(buildClock(config))
+ b.WriteString(buildClock(config.Clock))
case "ip":
- b.WriteString(buildIP(config))
+ b.WriteString(buildIP(config.IP))
case "mounts":
- b.WriteString(buildMounts(config))
+ b.WriteString(buildMounts(config.Mounts))
case "music":
- b.WriteString(buildMusic(config))
+ b.WriteString(buildMusic(config.Music))
default:
}
if i < len(config.Sections) - 1 {