diff options
Diffstat (limited to 'status/00-status.go')
| -rw-r--r-- | status/00-status.go | 30 |
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) } |