mirror of
https://gitlab.52pay.top/go/easygoadmin.git
synced 2025-09-27 02:38:03 +08:00
90 lines
1.3 KiB
Go
90 lines
1.3 KiB
Go
/**
|
|
* 配置工具
|
|
* @author
|
|
* @since 2021/11/15
|
|
* @File : cfg
|
|
*/
|
|
package cfg
|
|
|
|
import (
|
|
"github.com/BurntSushi/toml"
|
|
"os"
|
|
"sync"
|
|
)
|
|
|
|
var (
|
|
instance *config
|
|
once sync.Once
|
|
)
|
|
|
|
func InstanceByPath(filePath string) *config {
|
|
var conf config
|
|
if _, err := toml.DecodeFile(filePath, &conf); err != nil {
|
|
return nil
|
|
}
|
|
instance = &conf
|
|
return instance
|
|
}
|
|
|
|
// 获取配置文档实例
|
|
func Instance() *config {
|
|
once.Do(func() {
|
|
var conf config
|
|
path, _ := os.Getwd()
|
|
filePath := path + "/config/config.toml"
|
|
if _, err := toml.DecodeFile(filePath, &conf); err != nil {
|
|
return
|
|
}
|
|
instance = &conf
|
|
})
|
|
|
|
return instance
|
|
}
|
|
|
|
type config struct {
|
|
Database database
|
|
Mongodb mongodb
|
|
Logger logger
|
|
EasyGoAdmin easygoadmin
|
|
RedisCfg redisCfg
|
|
}
|
|
|
|
type database struct {
|
|
Master string
|
|
Slave string
|
|
Debug bool
|
|
Log string
|
|
Prev string
|
|
}
|
|
|
|
type mongodb struct {
|
|
Host string
|
|
Port int
|
|
User string
|
|
Password string
|
|
Database string
|
|
Prev string
|
|
}
|
|
|
|
type redisCfg struct {
|
|
Addr string
|
|
Port int64
|
|
Db int64
|
|
}
|
|
|
|
type logger struct {
|
|
Path string
|
|
Level uint32
|
|
Stdout bool
|
|
}
|
|
|
|
// 自定义配置
|
|
type easygoadmin struct {
|
|
Version string
|
|
Debug bool
|
|
Image string
|
|
Uploads string
|
|
Storage string
|
|
ImageMaxSize string
|
|
}
|