mirror of
https://github.com/black-ant/Ant-Browser.git
synced 2026-07-14 18:48:55 +08:00
publish: 1.0.0 snapshot (bad2ec1)
channel: master version: 1.0.0 source-ref: master published-at-utc: 2026-03-13T15:19:28Z
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
package backend
|
||||
|
||||
import (
|
||||
appconfig "ant-chrome/backend/internal/config"
|
||||
apptray "ant-chrome/backend/internal/tray"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Config = appconfig.Config
|
||||
type TrayCallbacks = apptray.Callbacks
|
||||
|
||||
func LoadConfig(path string) (*Config, error) {
|
||||
cfg, err := appconfig.Load(path)
|
||||
configChanged := false
|
||||
repairedConfig := false
|
||||
if err == nil {
|
||||
if changed, _, syncErr := reconcileConfigWithLocalLicense(path, cfg); syncErr != nil {
|
||||
return cfg, syncErr
|
||||
} else {
|
||||
configChanged = changed
|
||||
}
|
||||
if configChanged {
|
||||
if saveErr := cfg.Save(path); saveErr != nil {
|
||||
return cfg, fmt.Errorf("写回配置失败: %w", saveErr)
|
||||
}
|
||||
}
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
// 配置文件存在但内容损坏时,自动备份并重建默认配置,避免启动阶段反复报错。
|
||||
if data, readErr := os.ReadFile(path); readErr == nil && len(data) > 0 {
|
||||
backupPath := fmt.Sprintf("%s.broken-%s", path, time.Now().Format("20060102-150405"))
|
||||
if writeErr := os.WriteFile(backupPath, data, 0644); writeErr != nil {
|
||||
return appconfig.DefaultConfig(), fmt.Errorf("加载配置失败: %w;备份损坏配置失败: %v", err, writeErr)
|
||||
}
|
||||
}
|
||||
|
||||
defaultCfg := appconfig.DefaultConfig()
|
||||
repairedConfig = true
|
||||
if changed, _, syncErr := reconcileConfigWithLocalLicense(path, defaultCfg); syncErr != nil {
|
||||
return defaultCfg, syncErr
|
||||
} else {
|
||||
configChanged = changed
|
||||
}
|
||||
if repairedConfig || configChanged {
|
||||
if saveErr := os.MkdirAll(filepath.Dir(path), 0755); saveErr != nil {
|
||||
return defaultCfg, fmt.Errorf("加载配置失败: %w;创建配置目录失败: %v", err, saveErr)
|
||||
}
|
||||
if saveErr := defaultCfg.Save(path); saveErr != nil {
|
||||
return defaultCfg, fmt.Errorf("加载配置失败: %w;重建默认配置失败: %v", err, saveErr)
|
||||
}
|
||||
}
|
||||
return defaultCfg, nil
|
||||
}
|
||||
|
||||
func DefaultConfig() *Config {
|
||||
return appconfig.DefaultConfig()
|
||||
}
|
||||
|
||||
func RunTray(cb TrayCallbacks) {
|
||||
apptray.Run(cb)
|
||||
}
|
||||
|
||||
func QuitTray() {
|
||||
apptray.Quit()
|
||||
}
|
||||
Reference in New Issue
Block a user