Esempio n. 1
0
File: main.go Progetto: safeie/fsmon
func parseConfig() *goconfig.ConfigFile {
	baseDir, err := util.GetDir()
	if err != nil {
		log.Fatalln("basedir get error: " + err.Error())
	}
	configFile := baseDir + CONFIG_FILE
	conf, err := goconfig.ReadConfigFile(configFile)
	if err != nil {
		log.Fatalln("ReadConfigFile Err: ", err.Error(), "\nConfigFile:", configFile)
	}

	mon = new(monitor)
	mon.items = make([]MonitorItem, 0)
	mondir, err := conf.GetString("common", "monDir")
	mon.dirs = strings.Split(mondir, ",")
	mon.wps, _ = conf.GetInt("common", "wps")
	if mon.wps == 0 {
		mon.wps = DEF_WPS
	}
	mon.debug, _ = conf.GetBool("log", "debug")

	mon.mail = &mailConf{}
	mon.mail.host, _ = conf.GetString("mail", "mailHost")
	mon.mail.user, _ = conf.GetString("mail", "mailUser")
	mon.mail.pass, _ = conf.GetString("mail", "mailPass")
	mon.mail.from, _ = conf.GetString("mail", "mailFrom")
	mon.mail.to, _ = conf.GetString("mail", "mailTo")
	mon.mail.title, _ = conf.GetString("mail", "mailTitle")
	mon.mail.serverInfo, _ = conf.GetString("mail", "serverInfo")

	return conf
}
Esempio n. 2
0
func main() {
	var conFile string = "queue.conf"
	var i int64

	// init config
	c, err := goconfig.ReadConfigFile(conFile)
	if err != nil {
		log.Fatalln(err.Error())
	}

	// init log
	logFile, err := c.GetString("log", "logFile")
	if err != nil {
		log.Fatalln(err.Error())
	}
	w, err := os.OpenFile(logFile, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666)
	defer w.Close()
	if err != nil {
		log.Fatalln(err.Error())
	}
	logger = log.New(w, "", log.Ldate|log.Ltime|log.Llongfile)

	gnum, err := c.GetInt64("common", "rutineNum")
	errHandle(err)

	ch := make(chan int64, gnum)

	runtime.GOMAXPROCS(int(gnum))
	for i = 0; i < gnum; i++ {
		go queue(i, c, ch)
	}

	// trap signal
	sch := make(chan os.Signal, 10)
	signal.Notify(sch, syscall.SIGTERM, syscall.SIGKILL, syscall.SIGINT,
		syscall.SIGHUP, syscall.SIGSTOP, syscall.SIGQUIT)
	go func(ch <-chan os.Signal) {
		sig := <-ch
		log.Print("signal recieved " + sig.String())
		if sig == syscall.SIGHUP {
			log.Println("queue restart now...")
		}
		shutdown = true
	}(sch)

	// wait channel
	for i = 0; i < gnum; i++ {
		<-ch
	}
}
Esempio n. 3
0
// 解析配置文件
func (c *ACST) parseConfig(configFile string) {
	conf, err := goconfig.ReadConfigFile(configFile)
	if err != nil {
		log.Fatalln("ReadConfigFile Err: ", err.Error(), "\nConfigFile:", configFile)
	}
	c.Config = make(map[string]string)
	var field, value string
	for _, field = range configField {
		value, err = conf.GetString("default", field)
		if err != nil {
			log.Fatalln("baby, your config is error: ", err.Error())
		}
		c.Config[field] = value
	}
	// 处理相对路径问题
	for _, field = range [3]string{"checkoutDir", "commitDir", "logFile"} {
		if c.Config[field][0] != '/' {
			c.Config[field] = c.Pwd + "/" + c.Config[field]
		}
	}
}