generator.go 1.0 KB
Newer Older
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
1 2
package action

aaronchen2k2k's avatar
aaronchen2k2k 已提交
3
import (
aaronchen2k2k's avatar
aaronchen2k2k 已提交
4
	"fmt"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
5
	"github.com/easysoft/zendata/src/gen"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
6
	"github.com/easysoft/zendata/src/model"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
7
	logUtils "github.com/easysoft/zendata/src/utils/log"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
8
	stringUtils "github.com/easysoft/zendata/src/utils/string"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
9 10
	"gopkg.in/yaml.v2"
	"io/ioutil"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
11
	"strconv"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
12
)
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
13

aaronchen2k2k's avatar
aaronchen2k2k 已提交
14
func Generate(file string, total int, fields string, out string, table string) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
15 16 17
	definition := model.Definition{}

	yamlContent, err := ioutil.ReadFile(file)
aaronchen2k2k's avatar
aaronchen2k2k 已提交
18 19 20 21
	if err != nil {
		logUtils.Screen("fail to read " + file)
		return
	}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
22

aaronchen2k2k's avatar
aaronchen2k2k 已提交
23 24 25 26
	err = yaml.Unmarshal(yamlContent, &definition)
	if err != nil {
		logUtils.Screen("fail to parse " + file)
		return
aaronchen2k2k's avatar
aaronchen2k2k 已提交
27
	}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
28

aaronchen2k2k's avatar
aaronchen2k2k 已提交
29
	rows := gen.Generate(&definition, total, fields, out, table)
aaronchen2k2k's avatar
aaronchen2k2k 已提交
30
	Print(rows)
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
31
}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
32 33 34


func Print(rows [][]string) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
35
	width := stringUtils.GetNumbWidth(len(rows))
aaronchen2k2k's avatar
aaronchen2k2k 已提交
36

aaronchen2k2k's avatar
aaronchen2k2k 已提交
37
	for i, cols := range rows {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
38
		line := ""
aaronchen2k2k's avatar
aaronchen2k2k 已提交
39
		for j, col := range cols {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
40 41 42 43
			if j >0 {
				line = line + ", "
			}
			line = line + col
aaronchen2k2k's avatar
aaronchen2k2k 已提交
44
		}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
45

aaronchen2k2k's avatar
aaronchen2k2k 已提交
46
		idStr := fmt.Sprintf("%" + strconv.Itoa(width) + "d", i+1)
aaronchen2k2k's avatar
aaronchen2k2k 已提交
47
		logUtils.Screen(fmt.Sprintf("%s: %s", idStr, line))
aaronchen2k2k's avatar
aaronchen2k2k 已提交
48 49
	}
}