這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
代碼
https://github.com/fengchunjian/goexamples/viper
//main.gopackage mainimport ( "fmt" "github.com/spf13/viper" "os" "strings")const cmdRoot = "core"func main() { viper.SetEnvPrefix(cmdRoot) viper.AutomaticEnv() replacer := strings.NewReplacer(".", "_") viper.SetEnvKeyReplacer(replacer) viper.SetConfigName(cmdRoot) viper.AddConfigPath("./") err := viper.ReadInConfig() if err != nil { fmt.Println(fmt.Errorf("Fatal error when reading %s config file:%s", cmdRoot, err)) os.Exit(1) } environment := viper.GetBool("security.enabled") fmt.Println("security.enabled:", environment) fullstate := viper.GetString("statetransfer.timeout.fullstate") fmt.Println("statetransfer.timeout.fullstate:", fullstate) abcdValue := viper.GetString("peer.abcd") fmt.Println("peer.abcd:", abcdValue)}
//core.yamlstatetransfer: recoverdamage: true blocksperrequest: 20 maxdeltas: 200 timeout: singleblock: 2s singlestatedelta: 2s fullstate: 60speer: abcd: 3322d
編譯
go get github.com/spf13/viper
go build -o vip
處理go get github.com/spf13/viper過程中問題
unrecognized import path "golang.org/x/sys/unix"
unrecognized import path "golang.org/x/text/transform"
unrecognized import path "golang.org/x/text/unicode/norm"
解決辦法:
git clone https://github.com/golang/sys.git $GOPATH/src/golang.org/x/sys
git clone https://github.com/golang/text.git $GOPATH/src/golang.org/x/text
運行
CORE_SECURITY_ENABLED=true ./vipsecurity.enabled: truestatetransfer.timeout.fullstate: 60speer.abcd: 3322d
參考文檔
golang外掛程式viper
http://blog.csdn.net/qq_27809391/article/details/54091977