-
Notifications
You must be signed in to change notification settings - Fork 0
/
icksrv.go
56 lines (48 loc) · 1009 Bytes
/
icksrv.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package main
import (
"fmt"
"github.com/larspensjo/config"
"./events"
"os"
"time"
"strings"
)
func main() {
args := os.Args
if args == nil || len(args) < 2 {
fmt.Println("usage: proxy [ini file]")
os.Exit(1)
}
cnf, err := config.ReadDefault(args[1])
if err != nil {
fmt.Println("conferr:", err)
os.Exit(1)
}
if !cnf.HasSection("main") {
fmt.Println("conferr: missing main")
os.Exit(1)
}
if !cnf.HasOption("main", "check-list") {
fmt.Println("conferr: missing check-list")
os.Exit(1)
}
checklist, err := cnf.String("main", "check-list")
if err != nil {
fmt.Println("conferr: ", err)
os.Exit(1)
}
//Logger
events.DefLogger = events.NewLogger(cnf)
//rsync log
go events.DefLogger.Rsync()
//Check
list := strings.Split(checklist, ",")
chSync := make(chan events.CheckEntry, len(list))
for _, val := range list {
go events.Check(chSync, events.CheckEntry{args[1], val})
}
//Listen
go events.Listen()
//Watch
events.Watch(chSync, 60 * time.Second)
}