93 lines
1.5 KiB
Go
93 lines
1.5 KiB
Go
package config
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"github.com/BurntSushi/toml"
|
|
"os"
|
|
)
|
|
|
|
/********start-配置信息*********/
|
|
|
|
//Baiduco 百度上链
|
|
type Mysql struct {
|
|
Db string
|
|
DbHost string
|
|
DbPort string
|
|
DbUser string
|
|
DbPassWord string
|
|
DbName string
|
|
}
|
|
|
|
type Redis struct {
|
|
RedisDB string
|
|
RedisAddr string
|
|
RedisPW string
|
|
RedisDBNAme string
|
|
}
|
|
|
|
type System struct {
|
|
Mode string
|
|
Version string
|
|
HttpPort string
|
|
Host string
|
|
RedirectUri string
|
|
}
|
|
|
|
type Mobile struct {
|
|
SK string
|
|
AK string
|
|
URL string
|
|
DingDingKey string
|
|
}
|
|
type Ai struct {
|
|
Host string
|
|
TelNum string
|
|
Password string
|
|
}
|
|
|
|
type Config struct {
|
|
Mysql Mysql `toml:"mysql"`
|
|
Redis Redis `toml:"redis"`
|
|
System System `toml:"system"`
|
|
Mobile Mobile `toml:"mobile"`
|
|
Ai Ai `toml:"ai"`
|
|
}
|
|
|
|
/********start-配置信息*********/
|
|
|
|
var AppConfig *Config
|
|
|
|
func newConfig() *Config {
|
|
return new(Config)
|
|
}
|
|
|
|
func LoadEnv(path string) (*Config, error) {
|
|
_, err := os.Stat(path)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
AppConfig = newConfig()
|
|
if _, err := toml.DecodeFile(path, AppConfig); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return AppConfig, nil
|
|
}
|
|
|
|
func LoadEnvFromFileInfo(data string) (*Config, error) {
|
|
|
|
fmt.Println(data)
|
|
if data == "" {
|
|
return nil, errors.New("nacos 配置文件为空")
|
|
}
|
|
|
|
AppConfig = newConfig()
|
|
if _, err := toml.Decode(data, AppConfig); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return AppConfig, nil
|
|
}
|