Skip to content

Commit e1e0916

Browse files
committed
Update.
1 parent a48594d commit e1e0916

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

service/singleton/singleton.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package singleton
22

33
import (
4+
"fmt"
45
"log"
6+
"os"
7+
"path/filepath"
58
"time"
69

710
"github.com/patrickmn/go-cache"
@@ -84,10 +87,52 @@ func debugServersStatus() {
8487
// InitConfigFromPath 从给出的文件路径中加载配置
8588
func InitConfigFromPath(path string) {
8689
Conf = &model.Config{}
90+
91+
// 检查配置文件是否存在
92+
if _, err := os.Stat(path); os.IsNotExist(err) {
93+
log.Printf("NG>> 配置文件不存在: %s", path)
94+
// 尝试创建目录
95+
dir := filepath.Dir(path)
96+
if err := os.MkdirAll(dir, 0750); err != nil {
97+
log.Printf("NG>> 创建目录失败: %v", err)
98+
panic(fmt.Errorf("配置文件目录创建失败: %v", err))
99+
}
100+
101+
// 创建一个基本的配置文件模板
102+
defaultConfig := `# 配置文件
103+
debug: true
104+
language: zh-CN
105+
site:
106+
brand: "ServerStatus"
107+
cookiename: "serverstatus-dashboard"
108+
theme: "default"
109+
dashboardtheme: "default"
110+
oauth2:
111+
type: "github" # 这里需要根据实际情况修改
112+
admin: "admin" # 管理员用户名,多个用户名用逗号分隔
113+
clientid: "your-client-id"
114+
clientsecret: "your-client-secret"
115+
httpport: 8080
116+
grpcport: 5555
117+
location: "Asia/Shanghai"
118+
`
119+
// 写入默认配置
120+
if err := os.WriteFile(path, []byte(defaultConfig), 0600); err != nil {
121+
log.Printf("NG>> 创建默认配置文件失败: %v", err)
122+
panic(fmt.Errorf("创建默认配置文件失败: %v", err))
123+
}
124+
log.Printf("NG>> 已创建默认配置文件: %s,请修改后重新启动", path)
125+
panic(fmt.Errorf("已创建默认配置文件: %s,请修改后重新启动", path))
126+
}
127+
128+
// 读取配置
87129
err := Conf.Read(path)
88130
if err != nil {
131+
log.Printf("NG>> 读取配置文件失败: %v", err)
89132
panic(err)
90133
}
134+
135+
log.Printf("NG>> 配置文件加载成功: %s", path)
91136
}
92137

93138
// InitDBFromPath 从给出的文件路径中加载数据库

0 commit comments

Comments
 (0)