From 5d4871d5e4252330c84170c24d9fbbfb4b36a80e Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期一, 23 十二月 2019 10:09:53 +0800
Subject: [PATCH] remove viper deps too much

---
 util/common.go |   72 ++++++++++++++++++++++++++++++-----
 1 files changed, 61 insertions(+), 11 deletions(-)

diff --git a/util/common.go b/util/common.go
index c218ff2..0ed45b1 100644
--- a/util/common.go
+++ b/util/common.go
@@ -1,10 +1,12 @@
 package util
 
 import (
+	"fmt"
+	"io/ioutil"
 	"os"
 	"strings"
 
-	"github.com/spf13/viper"
+	"github.com/olebedev/config"
 )
 
 // FillParams 濉厖MapParams
@@ -41,22 +43,41 @@
 func InitConfig() {
 
 	const (
-		configFilePath = "/opt/vasystem/config/"
-		configFileName = "pro"
-		configFileType = "yaml"
+		configFileName = "pro.yaml"
 		LOGBASEPATH    = "/data/disk1/valog/"
 	)
 
-	viper.SetConfigType(configFileType)
-	viper.SetConfigName(configFileName)
-	viper.AddConfigPath(configFilePath)
-	viper.AddConfigPath("./")
+	configFilePaths := []string{
+		"/opt/vasystem/config/",
+		"./",
+	}
 
 	LogFile = "./log/analysis-"
 
-	if err := viper.ReadInConfig(); err == nil {
+	var file []byte
+	var err error
+	var fileName string
+	for _, v := range configFilePaths {
+		fileName = v + configFileName
+		file, err = ioutil.ReadFile(fileName)
+		if err == nil {
+			break
+		}
+	}
+	if file == nil {
+		fmt.Println("Read All Config Files Failed, Use Default, example LogFile ./log/analysis-'type'")
+		return
+	}
+	yamlString := string(file)
 
-		logPath := viper.GetString("LogBasePath")
+	cfg, err := config.ParseYaml(yamlString)
+	if err != nil {
+		fmt.Println("Config Parse File: ", fileName, " Error: ", err)
+		return
+	}
+	logPath, err := cfg.String("LogBasePath")
+
+	if err == nil {
 		if len(logPath) > 0 && IsFileExist(logPath) {
 			if logPath[len(logPath)-1] == '/' {
 				LogFile = logPath + "analysis-"
@@ -69,5 +90,34 @@
 	} else if IsFileExist(LOGBASEPATH) {
 		LogFile = LOGBASEPATH + "analysis-"
 	}
-
 }
+
+// const (
+// 	configFilePath = "/opt/vasystem/config/"
+// 	configFileName = "pro"
+// 	configFileType = "yaml"
+// 	LOGBASEPATH    = "/data/disk1/valog/"
+// )
+
+// viper.SetConfigType(configFileType)
+// viper.SetConfigName(configFileName)
+// viper.AddConfigPath(configFilePath)
+// viper.AddConfigPath("./")
+
+// LogFile = "./log/analysis-"
+
+// if err := viper.ReadInConfig(); err == nil {
+
+// 	logPath := viper.GetString("LogBasePath")
+// 	if len(logPath) > 0 && IsFileExist(logPath) {
+// 		if logPath[len(logPath)-1] == '/' {
+// 			LogFile = logPath + "analysis-"
+// 		} else {
+// 			LogFile = logPath + "/analysis-"
+// 		}
+// 	} else if IsFileExist(LOGBASEPATH) {
+// 		LogFile = LOGBASEPATH + "analysis-"
+// 	}
+// } else if IsFileExist(LOGBASEPATH) {
+// 	LogFile = LOGBASEPATH + "analysis-"
+// }

--
Gitblit v1.8.0