summaryrefslogtreecommitdiff
path: root/status/00-status.go
diff options
context:
space:
mode:
Diffstat (limited to 'status/00-status.go')
-rw-r--r--status/00-status.go30
1 files changed, 17 insertions, 13 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)
}