definition.go 775 字节
Newer Older
1 2 3 4 5 6 7 8
package gen

import (
	"github.com/easysoft/zendata/src/model"
	constant "github.com/easysoft/zendata/src/utils/const"
	logUtils "github.com/easysoft/zendata/src/utils/log"
	"gopkg.in/yaml.v2"
	"io/ioutil"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
9
	"strings"
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
)

func LoadDefinitionFromFile(file string) {
	def := model.Definition{}

	yamlContent, err := ioutil.ReadFile(file)
	if err != nil {
		logUtils.Screen("fail to read " + file)
		return
	}

	err = yaml.Unmarshal(yamlContent, &def)
	if err != nil {
		logUtils.Screen("fail to parse " + file)
		return
	}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
27
	if strings.Index(file, "conf") != 0 && constant.Definition.Title == "" { // only add the fields in first level yaml file
28
		constant.Definition = def
aaronchen2k2k's avatar
aaronchen2k2k 已提交
29 30 31 32
	}

	for _, field := range def.Fields {
		constant.LoadedFields[field.Name] = field // add to a map
33 34
	}
}