From 0dec80287930e3002d1b07cc27db4903869f542f Mon Sep 17 00:00:00 2001 From: zhangxin Date: Mon, 2 Aug 2021 16:50:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=BB=E5=8F=96=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6=E7=9A=84=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- infra/config/config.go | 4 ++-- utils/util.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/infra/config/config.go b/infra/config/config.go index 0ef7f25..f3e1ba0 100644 --- a/infra/config/config.go +++ b/infra/config/config.go @@ -1,9 +1,9 @@ package config import ( + "LAPP_ETL/utils" "github.com/spf13/viper" "path" - "path/filepath" ) var AppConfig Config @@ -48,7 +48,7 @@ type ETCD struct { } func InitConfig() (err error) { - baseDir, err := filepath.Abs(".") + baseDir, err := utils.GetCurrentPath("/conf") if err != nil { return } diff --git a/utils/util.go b/utils/util.go index 2980bfe..461a9af 100644 --- a/utils/util.go +++ b/utils/util.go @@ -1,11 +1,14 @@ package utils import ( + "errors" "fmt" "io" "log" "mime/multipart" "os" + "os/exec" + "path/filepath" "reflect" "strconv" "strings" @@ -207,4 +210,29 @@ func ConvInt2FormatString(input, ilen int)(retstring string){ retstring = strings.Repeat("0", igap) + strconv.Itoa(input) } return +} + +//windows环境下获取绝对路径 +func GetCurrentPath(dir string) (string, error) { + file, err := exec.LookPath(os.Args[0]) + if err != nil { + return "", err + } + path, err := filepath.Abs(file) + if err != nil { + return "", err + } + i := strings.LastIndex(path, "/") + if i < 0 { + i = strings.LastIndex(path, "\\") + } + if i < 0 { + return "", errors.New(`error: Can't find "/" or "\".`) + } + pathdir := string(path[0 : i+1]) + if len(dir) > 0 { + dir = strings.Replace(dir, "/", "\\", -1) + return filepath.Join(pathdir, dir), nil + } + return string(path[0 : i+1]), nil } \ No newline at end of file