| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- package util
- import (
- "net"
- "os"
- "path/filepath"
- "strings"
- "github.com/go-ini/ini"
- )
- type MySQLConfig struct {
- Mysql_Host string
- Mysql_Port int
- Mysql_Name string
- Mysql_Timezone string
- Mysql_User string
- Mysql_Password string
- }
- type RedisConfig struct {
- Redis_Address string
- Redis_Password string
- }
- type MQTTConfig struct {
- Mqtt_Id string
- Mqtt_Server string
- Mqtt_User string
- Mqtt_Password string
- Mqtt_Topics []string
- }
- func (o *MySQLConfig) ReadConfig(path, sec string) bool {
- var ret bool = false
- fini, err := ini.Load(path + "mysql.ini")
- if err == nil {
- fsec := fini.Section(sec)
- if fsec != nil {
- o.Mysql_Host = fsec.Key("host").String()
- o.Mysql_Port, _ = fsec.Key("port").Int()
- o.Mysql_User = fsec.Key("user").String()
- o.Mysql_Password = fsec.Key("password").String()
- o.Mysql_Name = fsec.Key("name").String()
- o.Mysql_Timezone = fsec.Key("timezone").String()
- ret = true
- }
- }
- return ret
- }
- func (o *RedisConfig) ReadConfig(path, sec string) bool {
- var ret bool = false
- fini, err := ini.Load(path + "redis.ini")
- if err == nil {
- fsec := fini.Section(sec)
- if fsec != nil {
- o.Redis_Address = fsec.Key("address").String()
- o.Redis_Password = fsec.Key("password").String()
- ret = true
- }
- }
- return ret
- }
- func (o *MQTTConfig) ReadConfig(path, sec string) bool {
- var ret bool = false
- fini, err := ini.Load(path + "broker.ini")
- if err == nil {
- fsec := fini.Section(sec)
- if fsec != nil {
- o.Mqtt_Id = fsec.Key("id").String() + "_" + GetOneMac() + "_" +
- strings.ToUpper(strings.Split(filepath.Base(os.Args[0]), ".")[0])
- o.Mqtt_Server = fsec.Key("server").String()
- o.Mqtt_User = fsec.Key("user").String()
- o.Mqtt_Password = fsec.Key("password").String()
- o.Mqtt_Topics = fsec.Key("topics").Strings(",")
- ret = true
- }
- }
- return ret
- }
- func GetOneMac() string {
- interfaces, err := net.Interfaces()
- if err == nil {
- for _, inter := range interfaces {
- if inter.Flags&net.FlagBroadcast == net.FlagBroadcast {
- return strings.ToUpper(strings.Replace(inter.HardwareAddr.String(), ":", "", -1))
- }
- }
- }
- return ""
- }
- func GetPath(flag int) string {
- //basedir, _ := filepath.Abs(filepath.Dir(os.Args[0]))
- basedir, _ := os.Getwd()
- switch flag {
- case 0:
- return basedir + string(filepath.Separator) + "conf" + string(filepath.Separator)
- case 1:
- return basedir + string(filepath.Separator) + "dev" + string(filepath.Separator)
- case 2:
- return basedir + string(filepath.Separator) + "model" + string(filepath.Separator)
- case 3:
- return basedir + string(filepath.Separator) + "log" + string(filepath.Separator)
- case 4:
- return basedir + string(filepath.Separator) + "tmp" + string(filepath.Separator)
- case 5:
- return basedir + string(filepath.Separator) + "pole" + string(filepath.Separator)
- case 6:
- return basedir + string(filepath.Separator) + "rule" + string(filepath.Separator)
- }
- return ""
- }
|