From ef45e6eece6e06f32a07e909a6c5bb275e52a763 Mon Sep 17 00:00:00 2001 From: RicheyJang <773602577@qq.com> Date: Fri, 18 Mar 2022 14:13:05 +0800 Subject: [PATCH] feat: try to fix current path --- pre_works.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pre_works.go b/pre_works.go index 6740033..1c3c3fe 100644 --- a/pre_works.go +++ b/pre_works.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "os" "os/exec" + "path/filepath" "runtime" "strings" "time" @@ -57,6 +58,7 @@ func init() { // DoPreWorks 进行全局初始化工作 func DoPreWorks() { + fixCurrentDir() // 读取主配置 err := flushMainConfig(consts.DefaultConfigDir, consts.MainConfigFileName) if err != nil { @@ -73,6 +75,29 @@ func DoPreWorks() { CheckDaemon() } +// 尝试修正当前路径 +func fixCurrentDir() { + runDir, err := filepath.Abs(filepath.Dir(os.Args[0])) + if err != nil { + log.Errorf("无法获取当前绝对路径: %v", err) + return + } + wd, _ := os.Getwd() + if wd != runDir { + err = os.Chdir(runDir) + if err != nil { + log.Errorf("无法修改当前工作路径: %v", err) + return + } + wd, err = os.Getwd() + if err != nil { + log.Errorf("can not get wd, err=%v", err) + return + } + log.Infof("修正当前路径为%v", wd) + } +} + // 设置日志 func setupLogger() error { // 日志等级