You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

281 lines
6.6 KiB

package ConfigUtil
import (
"fmt"
"gopkg.in/ini.v1"
"os"
"strings"
)
var (
//要发布到的主机信息
DistributeIp string
DistributePort int32
DistributeUser string
DistributePwd string
DistributeRemotePath string
DistributeLocalPath string
//服务器的端口
ServerPort string
//运行时配置
StartPathWindows string
StartPathLinux string
//rpc服务IP和端口
RpcServerIp string
RpcServerPort string
//mysql配置
MysqlIp string
MysqlPort string
MysqlDbName string
//REDIS配置
RedisIp string
RedisPort string
RedisDb string
RedisExpireTime int64
//项目名称
ProjectName string
//kafka地址
//KafkaAddress string
KafkaBrokers []string
//kafka web日志主题
KafkaAccessLogTopic string
KafkaParts int64
KafkaReply int64
//Sso配置
SsoServerNw string
SsoServerWw string
AuthCodeURI string
AuthTokenURI string
AuthLogoutURI string
ClientIdNw string
ClientIdWw string
ClientSecretNw string
ClientSecretWw string
ResponseType string
GrantType string
RedirectURINw string
RedirectURIWw string
AccessTokenKey string
IntranetIP string
DiffTime int64
)
//cookie中的SessionId名称
var SessionId = "ds_sso_sessionid"
//登录名到会话ID的前缀
var SearchSessionIdPrefix = "ds_sso_search_session_"
// 判断所给路径文件/文件夹是否存在
func Exists(path string) bool {
_, err := os.Stat(path) //os.Stat获取文件信息
if err != nil {
if os.IsExist(err) {
return true
}
return false
}
return true
}
func init() {
//判断是不是单元测试,如果是的话,那么配置文件的路径需要加上一个.
var configIniFile = "./Config/Config.ini"
//判断文件不是存在
if !Exists(configIniFile) {
configIniFile = "." + configIniFile
}
//再不存在,直接走物理路径
if !Exists(configIniFile) {
configIniFile = "/usr/local/dsMin/dsBaseWeb/Config/Config.ini"
}
iniParser := IniParser{}
if err := iniParser.Load(configIniFile); err != nil {
fmt.Printf("try load config file[%s] error[%s]\n", configIniFile, err.Error())
return
}
//发布的远端IP
DistributeIp = iniParser.GetString("distribute", "ip")
//发布的远端端口
DistributePort = iniParser.GetInt32("distribute", "port")
//发布的远端用户名
DistributeUser = iniParser.GetString("distribute", "user")
//发布的远端密码
DistributePwd = iniParser.GetString("distribute", "pwd")
//远端路径
DistributeRemotePath = iniParser.GetString("distribute", "remotePath")
//本地路径
DistributeLocalPath = iniParser.GetString("distribute", "localPath")
//rpc服务器IP
RpcServerIp = iniParser.GetString("rpcServer", "ip")
//rpc服务器的端口
RpcServerPort = iniParser.GetString("rpcServer", "port")
//web服务器端口
ServerPort = iniParser.GetString("server", "port")
//读取redis配置
RedisIp = iniParser.GetString("redis", "ip")
RedisPort = iniParser.GetString("redis", "port")
RedisDb = iniParser.GetString("redis", "db")
RedisExpireTime = iniParser.GetInt64("redis", "expireTime")
//项目名称
ProjectName = iniParser.GetString("project", "project_name")
//change by zhangjun 2020-08-03
//kafka地址
//KafkaAddress = iniParser.GetString("kafka", "KafkaAddress")
KafkaBrokers=strings.Split(iniParser.GetString("kafka", "brokers"),",")
//kafka WEB日志主题
KafkaAccessLogTopic = iniParser.GetString("kafka", "KafkaAccessLogTopic")
KafkaReply =iniParser.GetInt64("kafka", "replication")
KafkaParts=iniParser.GetInt64("kafka", "partition")
SsoServerNw = iniParser.GetString("sso", "ssoServerNw")
SsoServerWw = iniParser.GetString("sso", "ssoServerWw")
AuthCodeURI = iniParser.GetString("sso", "authCodeURI")
AuthTokenURI = iniParser.GetString("sso", "authTokenURI")
AuthLogoutURI = iniParser.GetString("sso", "authLogoutURI")
ClientIdNw = iniParser.GetString("sso", "clientIdNw")
ClientSecretNw = iniParser.GetString("sso", "clientSecretNw")
ClientIdWw = iniParser.GetString("sso", "clientIdWw")
ClientSecretWw = iniParser.GetString("sso", "clientSecretWw")
ResponseType = iniParser.GetString("sso", "responseType")
GrantType = iniParser.GetString("sso", "grantType")
RedirectURINw = iniParser.GetString("sso", "redirectURINw")
RedirectURIWw = iniParser.GetString("sso", "redirectURIWw")
AccessTokenKey = iniParser.GetString("sso", "accessTokenKey")
//mysql
MysqlIp = iniParser.GetString("mysql", "ip")
MysqlPort = iniParser.GetString("mysql", "port")
MysqlDbName = iniParser.GetString("mysql", "db_name")
DiffTime = iniParser.GetInt64("deleteXlsx", "diffTime")
IntranetIP = iniParser.GetString("IP", "intranetIP")
}
type IniParser struct {
confReader *ini.File // config reader
}
type IniParserError struct {
errorInfo string
}
func (e *IniParserError) Error() string { return e.errorInfo }
func (this *IniParser) Load(configFileName string) error {
conf, err := ini.Load(configFileName)
if err != nil {
this.confReader = nil
return err
}
this.confReader = conf
return nil
}
func (this *IniParser) GetString(section string, key string) string {
if this.confReader == nil {
return ""
}
s := this.confReader.Section(section)
if s == nil {
return ""
}
return s.Key(key).String()
}
func (this *IniParser) GetInt32(section string, key string) int32 {
if this.confReader == nil {
return 0
}
s := this.confReader.Section(section)
if s == nil {
return 0
}
valueInt, _ := s.Key(key).Int()
return int32(valueInt)
}
func (this *IniParser) GetUint32(section string, key string) uint32 {
if this.confReader == nil {
return 0
}
s := this.confReader.Section(section)
if s == nil {
return 0
}
valueInt, _ := s.Key(key).Uint()
return uint32(valueInt)
}
func (this *IniParser) GetInt64(section string, key string) int64 {
if this.confReader == nil {
return 0
}
s := this.confReader.Section(section)
if s == nil {
return 0
}
valueInt, _ := s.Key(key).Int64()
return valueInt
}
func (this *IniParser) GetUint64(section string, key string) uint64 {
if this.confReader == nil {
return 0
}
s := this.confReader.Section(section)
if s == nil {
return 0
}
valueInt, _ := s.Key(key).Uint64()
return valueInt
}
func (this *IniParser) GetFloat32(section string, key string) float32 {
if this.confReader == nil {
return 0
}
s := this.confReader.Section(section)
if s == nil {
return 0
}
valueFloat, _ := s.Key(key).Float64()
return float32(valueFloat)
}
func (this *IniParser) GetFloat64(section string, key string) float64 {
if this.confReader == nil {
return 0
}
s := this.confReader.Section(section)
if s == nil {
return 0
}
valueFloat, _ := s.Key(key).Float64()
return valueFloat
}