fix: 安装页面保存配置失败 - 确保目录存在并正确创建配置文件
This commit is contained in:
@@ -97,12 +97,30 @@ func Load(configPath string) error {
|
||||
}
|
||||
|
||||
func Save(cfg *Config) error {
|
||||
// 确保 data 目录存在
|
||||
if err := os.MkdirAll("./data", 0755); err != nil {
|
||||
return fmt.Errorf("创建数据目录失败: %w", err)
|
||||
}
|
||||
|
||||
viper.Set("server", cfg.Server)
|
||||
viper.Set("database", cfg.Database)
|
||||
viper.Set("redis", cfg.Redis)
|
||||
viper.Set("jwt", cfg.JWT)
|
||||
viper.Set("captcha", cfg.Captcha)
|
||||
|
||||
// 使用 SafeWriteConfig,如果文件不存在会自动创建
|
||||
configPath := "./data/config.yaml"
|
||||
viper.SetConfigFile(configPath)
|
||||
|
||||
// 检查文件是否存在,不存在则创建
|
||||
if _, err := os.Stat(configPath); os.IsNotExist(err) {
|
||||
if err := viper.SafeWriteConfig(); err != nil {
|
||||
return fmt.Errorf("创建配置文件失败: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 文件已存在,直接写入
|
||||
return viper.WriteConfig()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user