conf: support render configure file using environment variables

This commit is contained in:
fatedier
2018-12-11 11:46:12 +08:00
parent b61cb14c8f
commit 25cfda5768
6 changed files with 167 additions and 48 deletions

View File

@ -16,7 +16,6 @@ package main
import (
"fmt"
"io/ioutil"
"os"
"github.com/spf13/cobra"
@ -100,7 +99,13 @@ var rootCmd = &cobra.Command{
var err error
if cfgFile != "" {
err = parseServerCommonCfg(CfgFileTypeIni, cfgFile)
var content string
content, err = config.GetRenderedConfFromFile(cfgFile)
if err != nil {
return err
}
g.GlbServerCfg.CfgFile = cfgFile
err = parseServerCommonCfg(CfgFileTypeIni, content)
} else {
err = parseServerCommonCfg(CfgFileTypeCmd, "")
}
@ -123,9 +128,9 @@ func Execute() {
}
}
func parseServerCommonCfg(fileType int, filePath string) (err error) {
func parseServerCommonCfg(fileType int, content string) (err error) {
if fileType == CfgFileTypeIni {
err = parseServerCommonCfgFromIni(filePath)
err = parseServerCommonCfgFromIni(content)
} else if fileType == CfgFileTypeCmd {
err = parseServerCommonCfgFromCmd()
}
@ -133,8 +138,6 @@ func parseServerCommonCfg(fileType int, filePath string) (err error) {
return
}
g.GlbServerCfg.CfgFile = filePath
err = g.GlbServerCfg.ServerCommonConf.Check()
if err != nil {
return
@ -144,13 +147,7 @@ func parseServerCommonCfg(fileType int, filePath string) (err error) {
return
}
func parseServerCommonCfgFromIni(filePath string) (err error) {
b, err := ioutil.ReadFile(filePath)
if err != nil {
return err
}
content := string(b)
func parseServerCommonCfgFromIni(content string) (err error) {
cfg, err := config.UnmarshalServerConfFromIni(&g.GlbServerCfg.ServerCommonConf, content)
if err != nil {
return err