summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--status/00-status.go30
-rw-r--r--status/01-bat.go9
-rw-r--r--status/02-cpu.go9
-rw-r--r--status/03-mem.go9
4 files changed, 20 insertions, 37 deletions
diff --git a/status/00-status.go b/status/00-status.go
index ec2a069..bfd7bb9 100644
--- a/status/00-status.go
+++ b/status/00-status.go
@@ -47,7 +47,7 @@ func init() {
}()
}
-func register(name string) {
+func register(name string, fn func(string) error) {
nid := 0
for _, id := range statusid {
if id >= nid {
@@ -55,6 +55,22 @@ func register(name string) {
}
}
statusid[name] = nid
+
+ go func(){
+ for {
+ err := fn(name)
+
+ if err != nil {
+ common.Error("status \"%s\": %s\n", name, err)
+
+ u := newUpdate(name)
+ u.drawText(0, config.Red, fmt.Sprintf("[err: %s]", name))
+ updates <- u
+
+ sleep(5)
+ }
+ }
+ }()
}
func newUpdate(name string) (*status) {
@@ -70,18 +86,6 @@ func newUpdate(name string) (*status) {
return &s
}
-func checkError(name string, err error) {
- if err == nil { return }
-
- common.Error("status \"%s\": %s\n", name, err)
-
- u := newUpdate(name)
- u.drawText(0, config.Red, fmt.Sprintf("[err: %s]", name))
- updates <- u
-
- sleep(5)
-}
-
func sleep(s int) {
time.Sleep(time.Duration(s) * time.Second)
}
diff --git a/status/01-bat.go b/status/01-bat.go
index 5eb9295..85643f1 100644
--- a/status/01-bat.go
+++ b/status/01-bat.go
@@ -94,12 +94,5 @@ func bat(name string) error {
}
func init() {
- name := "bat"
- register(name)
-
- go func(){
- for {
- checkError(name, bat(name))
- }
- }()
+ register("bat", bat)
}
diff --git a/status/02-cpu.go b/status/02-cpu.go
index a7b97cf..f67d908 100644
--- a/status/02-cpu.go
+++ b/status/02-cpu.go
@@ -132,12 +132,5 @@ func cpu(name string) error {
}
func init() {
- name := "cpu"
- register(name)
-
- go func(){
- for {
- checkError(name, cpu(name))
- }
- }()
+ register("cpu", cpu)
}
diff --git a/status/03-mem.go b/status/03-mem.go
index 89dbb59..e33b879 100644
--- a/status/03-mem.go
+++ b/status/03-mem.go
@@ -52,12 +52,5 @@ func mem(name string) error {
}
func init() {
- name := "mem"
- register(name)
-
- go func() {
- for {
- checkError(name, mem(name))
- }
- }()
+ register("mem", mem)
}