generator.go 961 字节
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/model"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
6
	"github.com/easysoft/zendata/src/gen"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
7 8 9
	logUtils "github.com/easysoft/zendata/src/utils/log"
	"gopkg.in/yaml.v2"
	"io/ioutil"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
10
	"strconv"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
11
)
aaronchen2k2k's avatar
init  
aaronchen2k2k 已提交
12

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

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

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

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


func Print(rows [][]string) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
34 35
	width := len(rows) / 10 + 1

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

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