Files
2023-08-24 19:10:46 +08:00

78 lines
1.6 KiB
Go

package conf
import (
"encoding/json"
"errors"
"fmt"
"os"
"strings"
"github.com/aceld/zinx/zconf"
"github.com/aceld/zinx/zlog"
)
type Channel struct {
TCPPort int `json:"tcp_port"` //当前通道的TCP监听端口
BindFlag string `json:"bind_flag"` //当前通道bind 的网元信息
Province string `json:"province"` //网元所在省份
DeviceCode string `json:"device_code"` //主机编码 四位,每1位可用0-9、A-Z编码
}
type Config struct {
// 网元通道
Channel []Channel `json:"channel"`
// 数据库连接
Mysql string `json:"mysql"`
//以下是zinx 的配置
Name string `json:"name"`
MaxConn int `json:"max_conn"`
WorkerPoolSize int `json:"worker_pool_size"`
HeartbeatMax int `json:"heartbeat_max"`
HbcheckInterval int `json:"hbcheck_interval"`
LogDir string `json:"log_dir"`
LogFile string `json:"log_file"`
// FTP文件服务
FTPRoot string `json:"ftp_root"`
}
var OmcConf Config
func Reload(path string) error {
confFileExists, _ := zconf.PathExists(path)
if !confFileExists {
zlog.Ins().ErrorF("Config File %s is not exist!!", path)
return errors.New("config file is not exist")
}
data, err := os.ReadFile(path)
if err != nil {
return err
}
err = json.Unmarshal(data, &OmcConf)
if err != nil {
return err
}
return nil
}
func Init(path string) {
if path == "" || strings.HasSuffix(path, "zinx.json") {
pwd, err := os.Getwd()
if err != nil {
pwd = "."
}
path = pwd + "/conf/nbi_alarm.json"
fmt.Println("path", path)
}
if err := Reload(path); err != nil {
zlog.Ins().ErrorF("Config File %s error, ", err)
panic(err)
}
}