feat: 修复配置路径BUG并迁移onboard到huh
All checks were successful
Release / build (push) Successful in 12m14s

- 新增路径解析工具 internal/config/path.go
- 配置查找优先级: --config > ~/.config/yoyo/config.yaml > ./configs/config.yaml
- onboard配置保存到 ~/.config/yoyo/config.yaml (符合XDG规范)
- .env文件从 ~/.config/yoyo/.env 加载
- onboard使用huh替代survey库,更现代的交互体验
- 添加Ctrl+C取消支持,打印'你已取消本次配置'
- 保存前增加确认步骤
- 版本号 v0.5.1 -> v1.1.0
This commit is contained in:
2026-04-07 23:51:33 +08:00
parent 21e4710829
commit c0156a88d6
7 changed files with 326 additions and 232 deletions

View File

@@ -38,7 +38,7 @@ var (
interactiveShort = flag.Bool("i", false, "启动交互式翻译界面(-i的短格式")
)
const versionString = "YOYO翻译工具 v0.5.1"
const versionString = "YOYO翻译工具 v1.1.0"
// isPipeInput 检测是否有管道输入
func isPipeInput() bool {
@@ -192,12 +192,13 @@ func main() {
}
// 加载环境变量文件
_ = godotenv.Load() // 忽略错误,如果文件不存在
_ = godotenv.Load(config.GetUserEnvPath())
// 加载配置
configPath := *configFile
if configPath == "" {
configPath = "configs/config.yaml" // 默认配置文件路径
configPath, err := config.ResolveConfigPath(*configFile)
if err != nil {
fmt.Printf("解析配置路径失败: %v\n", err)
os.Exit(1)
}
configLoader := &config.YAMLConfigLoader{}
@@ -300,10 +301,14 @@ func runOnboard(force bool) {
// runCacheCommand 运行缓存命令
func runCacheCommand(subcommand string) {
// 加载环境变量文件
_ = godotenv.Load()
_ = godotenv.Load(config.GetUserEnvPath())
// 加载配置
configPath := "configs/config.yaml"
configPath, err := config.ResolveConfigPath("")
if err != nil {
fmt.Printf("解析配置路径失败: %v\n", err)
os.Exit(1)
}
configLoader := &config.YAMLConfigLoader{}
cfg, err := configLoader.Load(configPath)
if err != nil {
@@ -434,9 +439,9 @@ func printHelp() {
yoyo --interactive # 启动交互式翻译界面
yoyo -i # 启动交互式翻译界面(短格式)
配置:
- 配置文件: configs/config.yaml
- 环境变量: .env 文件
配置:
- 配置文件: ~/.config/yoyo/config.yaml
- 环境变量: ~/.config/yoyo/.env
- 默认厂商: siliconflow
- 默认目标语言: zh-CN (简体中文)
@@ -463,12 +468,13 @@ func startInteractiveMode() {
}
// 加载环境变量文件
_ = godotenv.Load() // 忽略错误,如果文件不存在
_ = godotenv.Load(config.GetUserEnvPath())
// 加载配置
configPath := *configFile
if configPath == "" {
configPath = "configs/config.yaml" // 默认配置文件路径
configPath, err := config.ResolveConfigPath(*configFile)
if err != nil {
fmt.Printf("解析配置路径失败: %v\n", err)
os.Exit(1)
}
configLoader := &config.YAMLConfigLoader{}