forked from lintanghui/gomonitor
/
main.go
57 lines (48 loc) · 1.27 KB
/
main.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
57
package main
import (
"flag"
"fmt"
"github.com/astaxie/beego/config"
"github.com/gomonitor/util"
"log"
"os"
"strings"
)
const (
ROOTDIR = "Monitor::rootdir"
WORKDIR = "Monitor::workdir"
INTERVAL = "Monitor::interval"
BUILDCMD = "Monitor::buildcmd"
RUNCMD = "Monitor::runcmd"
)
var monitor = util.DefMonitor
func main() {
var c string
flag.StringVar(&c, "c", "monitor.conf", "Usage: gomonitor -c=./monitor.conf")
flag.Parse()
parse(c)
monitor.Monitor()
}
func parse(conf string) {
iniconf, err := config.NewConfig("ini", conf)
if err != nil {
log.Panic(err)
}
rootdir := iniconf.String(ROOTDIR)
monitorDir := strings.Split(rootdir, ";")
// todo multi rootdir
monitor.Interval, _ = iniconf.Int(INTERVAL)
monitor.WorkDir = iniconf.String(WORKDIR)
monitor.RunCmd = iniconf.String(RUNCMD)
monitor.BuildCmd = iniconf.String(BUILDCMD)
log.Printf("BuildCmd :%s\n", monitor.BuildCmd)
log.Printf("RunCmd :%s\n", monitor.RunCmd)
gopath := os.Getenv("GOPATH")
for _, dir := range monitorDir {
dir = strings.Replace(dir, "$GoPath", gopath, -1)
err = monitor.AddRootDir(dir)
if err != nil {
fmt.Printf("%s", err)
}
}
}