From 300c087aaeb81b4d81bfffb3954a8c81bcaa04f1 Mon Sep 17 00:00:00 2001 From: aaron <462826@qq.com> Date: Fri, 10 Jul 2020 16:22:54 +0800 Subject: [PATCH] new features for 1.1 --- README.md | 62 +++++++++++++++++++++++++-------- go.mod | 1 + go.sum | 2 ++ res/doc/sample.txt | 16 --------- res/doc/sample.yaml | 14 ++++++++ res/doc/usage.txt | 67 +++++++++++++++++++++++++---------- src/action/generator.go | 17 ++++----- src/utils/const/const.go | 6 ++++ src/utils/log/print.go | 29 +++++++--------- src/utils/string/string.go | 31 +++++++++++++++++ src/utils/vari/var.go | 5 +++ src/zd.go | 69 +++++++++++++++++++++++++------------ src/zd.syso | Bin 0 -> 118378 bytes xdoc/build-mac.sh | 1 - xdoc/fav.ico | Bin 0 -> 117137 bytes xdoc/main.exe.manifest | 21 +++++++++++ xdoc/steup.txt | 4 ++- 17 files changed, 249 insertions(+), 96 deletions(-) delete mode 100644 res/doc/sample.txt create mode 100644 res/doc/sample.yaml create mode 100644 src/zd.syso create mode 100644 xdoc/fav.ico create mode 100644 xdoc/main.exe.manifest diff --git a/README.md b/README.md index cd735ee..a865643 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,53 @@ # zendata -ZenData is an data generator for testing automation written in Golang. +zendata是一款通用的数据生成工具,您可以使用yaml文件来定义您的数据格式,然后交由zendata生成。 -## Features -1. Generate massive test data by using yaml config files; -2. Customize your own definitions base on build-in generator; -3. Export database schema as yaml config files. +## 参数: +```shell + -d --default 默认的数据格式配置文件。 + -c --config 当前场景的数据格式配置文件,可以覆盖默认文件里面的设置。 + -o --output 生成的数据的文件名。可通过扩展名指定输出json|xml|sql格式的数据。默认输出原始格式的文本数据。 + -n --lines 要生成的记录条数,默认为10条。 -## QuickStart -### Run from release file -1. Download last release file from [here](https://github.com/easysoft/zendata/releases); -2. Type 'zd/zd.exe -h' to get the help. + -F --field 可通过该参数指定要输出的字段列表,用逗号分隔。 默认是所有的字段。 + -t --table 输出格式为sql时,需通过该参数指定要插入数据的表名。 + -H --human 输出可读格式,打印字段名,并使用tab键进行分割。 -### Run from Golang codes -1. Enter 'git clone https://github.com/easysoft/zendata.git' to get the source codes; -3. Type 'go run src/zd.go -h' to get the help. + -p --port 在指定端口上运行HTTP服务。可通过http://ip/接口获得JSON格式的数据。服务模式下只支持数据生成。 + -b --bind 监听的ip地址,默认监听所有的ip地址。 + -r --root 运行HTTP服务时根目录。客户端可调用该根目录下面的配置文件。如果不指定,取zd可执行文件所在目录。 -## Licenses -All source code is licensed under the [GPLv3 License](LICENSE.md). + -i --input 指定一个schema文件,输出每个表的yaml配置文件。需通过-o参数指定一个输出的目录。 + -s --server 数据库服务器类型,支持mysql|oracle|sqlite|sqlserver,默认为mysql。可用于解析yaml文件或者生成SQL。 + -D --decode 根据指定的配置文件,将通过-i参数指定的数据文件解析成json格式,可通过-H参数输出可读格式。 + + -e --example 打印示例的数据格式配置文件。 + -l --list 列出所有支持的数据格式。 + -v --view 查看某一个数据格式的详细定义。 + -h --help 打印帮助。 +``` + +## 命令行模式举例: +```shell +$>zd.exe -d demo\default.yaml 根据-d参数指定的配置文件生成10条记录。 +$>zd.exe -c demo\default.yaml 根据-c参数指定的配置文件生成10条记录。 +$>zd.exe -d demo\default.yaml -c demo\test.yaml -n 100 -c和-d两个文件的配置合并,输出100条记录。 + +$>zd.exe -d demo\default.yaml -c demo\test.yaml -n 100 -o test.txt 输出原始格式的数据。 +$>zd.exe -d demo\default.yaml -c demo\test.yaml -n 100 -o test.json 输出json格式的数据。 +$>zd.exe -d demo\default.yaml -c demo\test.yaml -n 100 -o test.xml 输出xml格式的数据。 +$>zd.exe -d demo\default.yaml -n 100 -o test.sql -t user -s mysql 输出插入到user表里面的sql。 + +$>zd.exe -i db.sql -s mysql -o db 根据db.sql的定义生成每个表的yaml文件,存储到db目录里面。 +$>zd.exe -c demo\default.yaml -i test.txt --decode 将-i指定的文件根据-d参数的配置进行解析。 +``` +## 服务模式举例: +```shell +$zd.exe -p 80 -r d:\zd\config 监听80端口,以d:\zd\config为根目录。 +``` + +## 客户端调用: +```shell +$curl http://loclahost/?d=default.yaml&c=config.yaml&n=100&o=test.sql&t=user 通过GET方式指定服务器端配置文件。 +$curl http://loclahost/?default=default.yamloutput=test.sql&table=user 参数名可以用全拼。 +$curl -d "default=...&config=...&lines=10" http://localhost/ 可以通过POST方式上传配置。 +``` \ No newline at end of file diff --git a/go.mod b/go.mod index 10a02ae..4408e85 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,7 @@ require golang.org/x/text v0.3.2 require ( github.com/360EntSecGroup-Skylar/excelize/v2 v2.2.0 + github.com/akavel/rsrc v0.9.0 // indirect github.com/emirpasic/gods v1.12.0 github.com/fatih/color v1.9.0 github.com/jinzhu/copier v0.0.0-20190924061706-b57f9002281a diff --git a/go.sum b/go.sum index 9538a75..587d161 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,8 @@ github.com/360EntSecGroup-Skylar/excelize v1.4.1 h1:l55mJb6rkkaUzOpSsgEeKYtS6/0gHwBYyfo5Jcjv/Ks= github.com/360EntSecGroup-Skylar/excelize/v2 v2.2.0 h1:5DuRTdH6M8yPjvFfBkACVmuk7SoTzmaB8yM6KVqEhP8= github.com/360EntSecGroup-Skylar/excelize/v2 v2.2.0/go.mod h1:Uwb0d1GgxJieUWZG5WylTrgQ2SrldfjagAxheU8W6MQ= +github.com/akavel/rsrc v0.9.0 h1:HwUDC0+tMFWqN4D5G+o5siGD4oVsC3jn6zM8ocjc3nY= +github.com/akavel/rsrc v0.9.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/awesome-gocui/gocui v0.6.0 h1:hhDJiQC12tEsJNJ+iZBBVaSSLFYo9llFuYpQlL5JZVI= github.com/awesome-gocui/gocui v0.6.0/go.mod h1:1QikxFaPhe2frKeKvEwZEIGia3haiOxOUXKinrv17mA= github.com/awesome-gocui/termbox-go v0.0.0-20190427202837-c0aef3d18bcc h1:wGNpKcHU8Aadr9yOzsT3GEsFLS7HQu8HxQIomnekqf0= diff --git a/res/doc/sample.txt b/res/doc/sample.txt deleted file mode 100644 index cd98983..0000000 --- a/res/doc/sample.txt +++ /dev/null @@ -1,16 +0,0 @@ - $>zd.exe -h 查看使用帮助。 - - $>zd.exe -y demo/test.yaml -c 15 -field field1 -o demo/output.txt -f text - 执行数据生成命令。使用配置文件demo/test.yaml,生成15行数据,以text格式的输出到demo/output.txt文件中。 - - $>zd.exe -y demo/test.yaml -head -sep , -s - 执行数据生成命令。带逗号分隔的标题行,默认生成10行,以Map形式的JSON格式输出到http://127.0.0.1/data接口。 - - $>zd.exe -y demo/test.yaml -c 15 -field field1 -o demo/insert.sql -f sql -t table_name - 执行数据生成命令。以SQL语句形式输出到demo/insert.sql文件中,表名为table_name。 - - $>zd.exe -d demo/base.yaml -y demo/test.yaml -c 15 -field field1 -o demo/output.txt - 执行数据生成命令。使用文件demo/test.yaml覆盖默认配置demo/common.yaml中的内容。 - - $>zd.exe -i xdoc/test/zentao.sql -o out - 从指定的数据库Schema,创建yaml定义文件,输出到out目录下。 \ No newline at end of file diff --git a/res/doc/sample.yaml b/res/doc/sample.yaml new file mode 100644 index 0000000..0d66421 --- /dev/null +++ b/res/doc/sample.yaml @@ -0,0 +1,14 @@ +title: test +desc: This is a test file. +author: zentao +version: 1.0 + +fields: + - field: field1 + note: 字符区间步长、随机 + range: a-f:R,0-9:2 + format: "%3d" + loop: 3 + loopfix: "," + prefix: "[" + postfix: "] " \ No newline at end of file diff --git a/res/doc/usage.txt b/res/doc/usage.txt index 9f609e8..f99c7fc 100644 --- a/res/doc/usage.txt +++ b/res/doc/usage.txt @@ -1,18 +1,49 @@ - -h --help 查看帮助信息。 - -s --set 设置工具语言属性。用户对当前目录需要有写权限。 - - 默认根据定义文件生成数据。 - -d --default 默认定义文件 - -y --yaml 指定定义文件 - -c --count 指定生成数据的条数 - --field 需要输出的字段,用逗号分隔。未指定时,默认输出-yaml文件中的所有字段。 - -o --out 指定输出文件 - -f --format 输出格式,支持text、json、xml和sql语句,默认为text。 - -t --table 输出格式为table时,用于指定insert语句的表名。 - --head 生成标题行。文本格式增加标题行,JSON数据转化为Map格式(JSON默认为二维数组)。 - --sep 生成标题行时,纸短见的分隔符,默认为逗号。 - -s --service 启动http服务,用户可从http://zd.exe -d demo\default.yaml 根据-d参数指定的配置文件生成10条记录。 +$>zd.exe -c demo\default.yaml 根据-c参数指定的配置文件生成10条记录。 +$>zd.exe -d demo\default.yaml -c demo\test.yaml -n 100 -c和-d两个文件的配置合并,输出100条记录。 + +$>zd.exe -d demo\default.yaml -c demo\test.yaml -n 100 -o test.txt 输出原始格式的数据。 +$>zd.exe -d demo\default.yaml -c demo\test.yaml -n 100 -o test.json 输出json格式的数据。 +$>zd.exe -d demo\default.yaml -c demo\test.yaml -n 100 -o test.xml 输出xml格式的数据。 +$>zd.exe -d demo\default.yaml -n 100 -o test.sql -t user -s mysql 输出插入到user表里面的sql。 + +$>zd.exe -i db.sql -s mysql -o db 根据db.sql的定义生成每个表的yaml文件,存储到db目录里面。 +$>zd.exe -c demo\default.yaml -i test.txt --decode 将-i指定的文件根据-d参数的配置进行解析。 + +服务模式举例: + +$zd.exe -p 80 -r d:\zd\config 监听80端口,以d:\zd\config为根目录。 + +客户端调用: + +$curl http://loclahost/?d=default.yaml&c=config.yaml&n=100&o=test.sql&t=user 通过GET方式指定服务器端配置文件。 +$curl http://loclahost/?default=default.yamloutput=test.sql&table=user 参数名可以用全拼。 +$curl -d "default=...&config=...&lines=10" http://localhost/ 可以通过POST方式上传配置。 \ No newline at end of file diff --git a/src/action/generator.go b/src/action/generator.go index d2b42d7..9b6dae2 100644 --- a/src/action/generator.go +++ b/src/action/generator.go @@ -9,6 +9,7 @@ import ( constant "github.com/easysoft/zendata/src/utils/const" i118Utils "github.com/easysoft/zendata/src/utils/i118" logUtils "github.com/easysoft/zendata/src/utils/log" + stringUtils "github.com/easysoft/zendata/src/utils/string" "github.com/easysoft/zendata/src/utils/vari" "github.com/fatih/color" "net/http" @@ -49,7 +50,6 @@ func Generate(deflt string, yml string, total int, fieldsToExportStr string, out logUtils.PrintToWithColor(i118Utils.I118Prt.Sprintf("press_to_exist"), color.FgCyan) http.HandleFunc("/", DataHandler) - http.HandleFunc("/data", DataHandler) http.ListenAndServe(":58848", nil) } @@ -82,7 +82,7 @@ func Print(rows [][]string, format string, table string, colTypes []bool, fields valueList := "" for j, col := range cols { - if j >0 && format == "sql" { + if j >0 && format == constant.FormatSql { line = line + "," valueList = valueList + "," } @@ -91,11 +91,12 @@ func Print(rows [][]string, format string, table string, colTypes []bool, fields row.Cols = append(row.Cols, col) colVal := col + colVal = stringUtils.AddPad(colVal) if !colTypes[j] { colVal = "'" + colVal + "'" } valueList = valueList + colVal } - if format == "text" && i < len(rows) { + if format == constant.FormatText && i < len(rows) { content = content + line + "\n" } @@ -103,7 +104,7 @@ func Print(rows [][]string, format string, table string, colTypes []bool, fields testData.Table.Rows = append(testData.Table.Rows, row) - if format == "sql" { + if format == constant.FormatSql { fieldNames := make([]string, 0) for _, f := range fields { @@ -115,7 +116,7 @@ func Print(rows [][]string, format string, table string, colTypes []bool, fields } respJson := "[]" - if format == "json" || vari.HttpService { + if format == constant.FormatJson || vari.HttpService { if vari.WithHead { mapArr := RowsToMap(rows, fields) jsonObj, _ := json.Marshal(mapArr) @@ -126,12 +127,12 @@ func Print(rows [][]string, format string, table string, colTypes []bool, fields } } - if format == "json" { + if format == constant.FormatJson { content = respJson - } else if format == "xml" { + } else if format == constant.FormatJson { xml, _ := xml.Marshal(testData) content = string(xml) - } else if format == "sql" { + } else if format == constant.FormatSql { content = sql } diff --git a/src/utils/const/const.go b/src/utils/const/const.go index 0edab15..abff6df 100644 --- a/src/utils/const/const.go +++ b/src/utils/const/const.go @@ -31,6 +31,12 @@ var ( Def = model.DefData{} Res = map[string]map[string][]string{} + FormatText = "text" + FormatJson = "json" + FormatXml = "xml" + FormatSql = "sql" + Formats = []string{FormatText, FormatJson, FormatXml, FormatSql} + LeftChar rune = '(' RightChar rune = ')' diff --git a/src/utils/log/print.go b/src/utils/log/print.go index 4b88a81..3915ee0 100644 --- a/src/utils/log/print.go +++ b/src/utils/log/print.go @@ -5,7 +5,6 @@ import ( "fmt" commonUtils "github.com/easysoft/zendata/src/utils/common" fileUtils "github.com/easysoft/zendata/src/utils/file" - i118Utils "github.com/easysoft/zendata/src/utils/i118" "github.com/fatih/color" "os" "regexp" @@ -13,12 +12,17 @@ import ( ) var ( + exampleFile = fmt.Sprintf("res%sdoc%ssample.yaml", string(os.PathSeparator), string(os.PathSeparator)) usageFile = fmt.Sprintf("res%sdoc%susage.txt", string(os.PathSeparator), string(os.PathSeparator)) - sampleFile = fmt.Sprintf("res%sdoc%ssample.txt", string(os.PathSeparator), string(os.PathSeparator)) ) +func PrintExample() { + content := fileUtils.ReadResData(exampleFile) + fmt.Printf("%s\n", content) +} + func PrintUsage() { - PrintToWithColor(i118Utils.I118Prt.Sprintf("usage"), color.FgCyan) + //PrintToWithColor(i118Utils.I118Prt.Sprintf("usage"), color.FgCyan) usage := fileUtils.ReadResData(usageFile) exeFile := "zd" @@ -26,24 +30,17 @@ func PrintUsage() { exeFile += ".exe" } usage = fmt.Sprintf(usage, exeFile) - fmt.Printf("%s\n", usage) - - PrintToWithColor("\n" + i118Utils.I118Prt.Sprintf("example"), color.FgCyan) - sample := fileUtils.ReadResData(sampleFile) if !commonUtils.IsWin() { regx, _ := regexp.Compile(`\\`) - sample = regx.ReplaceAllString(sample, "/") - - regx, _ = regexp.Compile(`ztf.exe`) - sample = regx.ReplaceAllString(sample, "ztf") + usage = regx.ReplaceAllString(usage, "/") - regx, _ = regexp.Compile(`/bat/`) - sample = regx.ReplaceAllString(sample, "/shell/") + regx, _ = regexp.Compile(`zd.exe`) + usage = regx.ReplaceAllString(usage, "zd") - regx, _ = regexp.Compile(`\.bat\s{4}`) - sample = regx.ReplaceAllString(sample, ".shell") + regx, _ = regexp.Compile(`d:`) + usage = regx.ReplaceAllString(usage, "/home/user") } - fmt.Printf("%s\n", sample) + fmt.Printf("%s\n", usage) } func PrintTo(str string) { diff --git a/src/utils/string/string.go b/src/utils/string/string.go index a92814b..249068e 100644 --- a/src/utils/string/string.go +++ b/src/utils/string/string.go @@ -6,6 +6,7 @@ import ( "encoding/hex" "fmt" constant "github.com/easysoft/zendata/src/utils/const" + "github.com/easysoft/zendata/src/utils/vari" "github.com/mattn/go-runewidth" "strconv" "strings" @@ -97,4 +98,34 @@ func FormatStr(format string, val interface{}) (string, bool) { } return str, true +} + +func InArray(need interface{}, arr []string) bool { + for _,v := range arr{ + if need == v{ + return true + } + } + return false +} + +func AddPad(str string) string { + if vari.Length > 0 { + gap := vari.Length - len(str) + if vari.LeftPad != "" { + vari.LeftPad = vari.LeftPad[:1] + pads := strings.Repeat(vari.LeftPad, gap) + str = pads + str + } else if vari.RightPad != "" { + vari.RightPad = vari.RightPad[:1] + pads := strings.Repeat(vari.RightPad, gap) + str = str + pads + } else { + vari.LeftPad = " " + pads := strings.Repeat(vari.LeftPad, gap) + str = pads + str + } + } + + return str } \ No newline at end of file diff --git a/src/utils/vari/var.go b/src/utils/vari/var.go index 34ab2e6..fc3c892 100644 --- a/src/utils/vari/var.go +++ b/src/utils/vari/var.go @@ -24,6 +24,11 @@ var ( WithHead bool HeadSep string + + Length int + LeftPad string + RightPad string + HttpService bool JsonResp string = "[]" ) diff --git a/src/zd.go b/src/zd.go index 4495088..9b19fa9 100644 --- a/src/zd.go +++ b/src/zd.go @@ -4,29 +4,34 @@ import ( "flag" "github.com/easysoft/zendata/src/action" configUtils "github.com/easysoft/zendata/src/utils/config" + constant "github.com/easysoft/zendata/src/utils/const" logUtils "github.com/easysoft/zendata/src/utils/log" + stringUtils "github.com/easysoft/zendata/src/utils/string" "github.com/easysoft/zendata/src/utils/vari" "github.com/fatih/color" "io/ioutil" "os" "os/signal" + "path" + "strings" "syscall" ) var ( - deflt string - yml string + deflt string + yaml string count int fields string input string output string - table = "text" - format = "text" + table string + format = constant.FormatText viewRes string viewDetail string + example bool help bool flagSet *flag.FlagSet @@ -46,34 +51,42 @@ func main() { flagSet.StringVar(&deflt, "d", "", "") flagSet.StringVar(&deflt, "default", "", "") - flagSet.StringVar(&yml, "y", "", "") - flagSet.StringVar(&yml, "yml", "", "") + flagSet.StringVar(&yaml, "c", "", "") + flagSet.StringVar(&yaml, "config", "", "") flagSet.StringVar(&input, "i", "", "") flagSet.StringVar(&input, "input", "", "") - flagSet.IntVar(&count, "c", 10, "") - flagSet.IntVar(&count, "count", 10, "") + flagSet.IntVar(&count, "n", 10, "") + flagSet.IntVar(&count, "lines", 10, "") + flagSet.StringVar(&fields, "F", "", "") flagSet.StringVar(&fields, "field", "", "") flagSet.StringVar(&output, "o", "", "") flagSet.StringVar(&output, "output", "", "") - flagSet.StringVar(&table, "t", "", "") - flagSet.StringVar(&table, "table", "", "") - - flagSet.StringVar(&format, "f", "text", "") - flagSet.StringVar(&format, "format", "text", "") + flagSet.StringVar(&table, "t", "table_name", "") + flagSet.StringVar(&table, "table", "table_name", "") flagSet.StringVar(&viewRes, "v", "", "") flagSet.StringVar(&viewDetail, "vv", "", "") - flagSet.BoolVar(&vari.WithHead, "head", false, "") - flagSet.StringVar(&vari.HeadSep, "sep", ",", "") + flagSet.StringVar(&vari.HeadSep, "H", "\t", "") + flagSet.StringVar(&vari.HeadSep, "human", "\t", "") + + flagSet.IntVar(&vari.Length, "length", 0, "") + flagSet.StringVar(&vari.LeftPad, "leftPad", "", "") + flagSet.StringVar(&vari.RightPad, "rightPad", "", "") flagSet.BoolVar(&vari.HttpService, "s", false, "") + flagSet.BoolVar(&example, "e", false, "") + flagSet.BoolVar(&example, "example", false, "") + + flagSet.BoolVar(&help, "h", false, "") + flagSet.BoolVar(&help, "help", false, "") + flagSet.BoolVar(&vari.Verbose, "verbose", false, "") if len(os.Args) == 1 { @@ -81,8 +94,10 @@ func main() { } switch os.Args[1] { + case "-e", "-example": + logUtils.PrintExample() case "-h", "-help": - usage() + logUtils.PrintUsage() default: if os.Args[1][0:1] == "-" { args := []string{os.Args[0], "gen"} @@ -97,20 +112,30 @@ func main() { func gen(args []string) { flagSet.SetOutput(ioutil.Discard) if err := flagSet.Parse(args[2:]); err == nil { + if vari.HeadSep != "" { + vari.WithHead = true + } + + if output != "" { + ext := strings.ToLower(path.Ext(output)) + if len(ext) > 1 { + ext = strings.TrimLeft(ext,".") + } + if stringUtils.InArray(ext, constant.Formats) { + format = ext + } + } + if input != "" { action.ParseSql(input, output) } else { - action.Generate(deflt, yml, count, fields, output, format, table) + action.Generate(deflt, yaml, count, fields, output, format, table) } } else { - usage() + logUtils.PrintUsage() } } -func usage() { - logUtils.PrintUsage() -} - func init() { cleanup() diff --git a/src/zd.syso b/src/zd.syso new file mode 100644 index 0000000000000000000000000000000000000000..422c172ab9cec8b65abf1c183bfd143aab4c733d GIT binary patch literal 118378 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 literal 0 HcmV?d00001 diff --git a/xdoc/build-mac.sh b/xdoc/build-mac.sh index f0b8d84..27b5674 100755 --- a/xdoc/build-mac.sh +++ b/xdoc/build-mac.sh @@ -1,6 +1,5 @@ rm -rf build mkdir build -mkdir build/log cp -r data build/ cp -r demo build/ diff --git a/xdoc/fav.ico b/xdoc/fav.ico new file mode 100644 index 0000000000000000000000000000000000000000..64e154eb7de14625e9992aa6343b7993a2725aca GIT binary patch literal 117137 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%0A??uQrA)c^^cSSE^JR4=+BHj~Yy>(gZNu@B<)wv z@~z-_b_xIC#cbzd+i0!VdigiXrlnp%;;T0Gq^;6sdH=5YtfMcwo;>IHWO*ddwYjTj z@|IH8_$EkS%F45bQ8sm=NpFVNA<;qU6yGo7_-QHI=qEPWv(q+j5A|N4P7^!zq^+v$ zVx-cuoO7_{T$5dn4`OnG=MxKq3d�_+KsKSY|o*pO*9d<#NtFmvaw)Il7j!eG;Fp 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 BaUTEx literal 0 HcmV?d00001 diff --git a/xdoc/main.exe.manifest b/xdoc/main.exe.manifest new file mode 100644 index 0000000..c52acbc --- /dev/null +++ b/xdoc/main.exe.manifest @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/xdoc/steup.txt b/xdoc/steup.txt index e1fcee0..42ebfa9 100644 --- a/xdoc/steup.txt +++ b/xdoc/steup.txt @@ -1,3 +1,5 @@ go get -u github.com/jteeuwen/go-bindata/... - go run src/zd.go -y demo/article.yaml -c 3 -head -s \ No newline at end of file +go run src/zd.go -y demo/article.yaml -c 3 -head -s + +rsrc -manifest xdoc/main.exe.manifest -ico xdoc/fav.ico -o zd.syso -- GitLab