-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.go
77 lines (69 loc) · 2.15 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*
* @Author: reel
* @Date: 2023-05-16 20:17:56
* @LastEditors: reel
* @LastEditTime: 2023-09-09 11:33:23
* @Description: 系统配置相关操作
*/
package config
import (
"encoding/json"
"github.com/fbs-io/core/internal/pem"
"github.com/fbs-io/core/pkg/encrypt"
"github.com/fbs-io/core/pkg/errorx"
)
type Config struct {
IsLoad bool `json:"-"`
Port string `json:"port" binding:"required"`
User string `json:"user" binding:"required"`
Pwd string `json:"password" binding:"required"`
Pwd2 string `json:"password2" binding:"required,eqfield=Pwd"`
DataPath string `json:"data_path" binding:"required"` // 项目数据路径, 包括日志, 本地缓存, 本地db, 本地其他文件等
// Email string `json:"email" binding:"required"`
// DB配置
DbType string `json:"db_type" binding:"required"`
DBName string `json:"db_name" binding:"required"`
DBHost string `json:"db_host"`
DBPort string `json:"db_port"`
DBUser string `json:"db_user"`
DBPwd string `json:"db_pwd"`
// 缓存配置
CacheType string `json:"cache_type" binding:"required"`
CacheName string `json:"cache_name" binding:"required"`
CacheHost string `json:"cache_host"`
CachePort string `json:"cache_port"`
CacheUser string `json:"cache_user"`
CachePwd string `json:"cache_pwd"`
}
// 加载配置
// 配置文件获取及字符转换封装在函数内
func (c *Config) Load() error {
pems, err := pem.GetPems()
if err != nil {
return errorx.Wrap(err, "无法加载配置文件")
}
confB, err := encrypt.InternalDecode(pems)
if err != nil {
return errorx.Wrap(err, "无法加载正确的配置文件, 请删除配置文件后重新设置")
}
err = json.Unmarshal(confB, &c)
if err != nil {
return errorx.Wrap(err, "无法加载正确的配置文件, 请删除配置文件后重新设置")
}
return nil
}
func (c *Config) Dump() error {
data, err := json.Marshal(c)
if err != nil {
return errorx.Wrap(err, "配置转JSON错误")
}
str, err := encrypt.InternalEncode(data)
if err != nil {
return errorx.Wrap(err, "配置转码错误")
}
err = pem.UpdatePems(str)
if err != nil {
return errorx.Wrap(err, "配置更新到文件失败")
}
return nil
}