整理打印
This commit is contained in:
+5
-4
@@ -2,6 +2,7 @@ package cmd
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"complie-erlang/config"
|
"complie-erlang/config"
|
||||||
|
"complie-erlang/parser/zm_lib"
|
||||||
"complie-erlang/worker"
|
"complie-erlang/worker"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
@@ -66,9 +67,9 @@ func (s *Pb2Port) run(_ *cobra.Command, arg []string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if s.debug {
|
if s.debug {
|
||||||
for key, arg1 := range args {
|
fmt.Println("参数打印: ")
|
||||||
fmt.Println(key, "-->", arg1)
|
_ = zm_lib.PrintArgsMap(args)
|
||||||
}
|
fmt.Println("")
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = os.Stat(s.out)
|
_, err = os.Stat(s.out)
|
||||||
@@ -82,7 +83,7 @@ func (s *Pb2Port) run(_ *cobra.Command, arg []string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if s.debug {
|
if s.debug {
|
||||||
fmt.Println("template:", template)
|
fmt.Println("模板输出:\n", template)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+15
-11
@@ -4,7 +4,6 @@ import (
|
|||||||
"complie-erlang/config"
|
"complie-erlang/config"
|
||||||
tm "complie-erlang/template"
|
tm "complie-erlang/template"
|
||||||
"complie-erlang/worker"
|
"complie-erlang/worker"
|
||||||
"fmt"
|
|
||||||
"gopkg.in/yaml.v2"
|
"gopkg.in/yaml.v2"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
@@ -22,31 +21,31 @@ func ExecuteSingleDir(args []string) {
|
|||||||
|
|
||||||
xmlPath, err := worker1.FindConfigXMLPath(cfgFileName)
|
xmlPath, err := worker1.FindConfigXMLPath(cfgFileName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Err 获取可执行文件路径失败: %v", err)
|
log.Printf("[error] 获取可执行文件路径失败: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
bytes, err := os.ReadFile(xmlPath)
|
bytes, err := os.ReadFile(xmlPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Err 读取配置文件失败: %v", err)
|
log.Printf("[error] 读取配置文件失败: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = yaml.Unmarshal(bytes, cfg); err != nil {
|
if err = yaml.Unmarshal(bytes, cfg); err != nil {
|
||||||
fmt.Printf("Err 解析配置文件 %s 失败: %v", xmlPath, err)
|
log.Printf("[error] 解析配置文件 %s 失败: %v", xmlPath, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取可执行文件所在目录
|
// 获取可执行文件所在目录
|
||||||
exePath, err := os.Executable()
|
exePath, err := os.Executable()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("获取可执行文件路径失败: %v", err)
|
log.Printf("[error] 获取可执行文件路径失败: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 加载模版报错
|
// 加载模版报错
|
||||||
if err := templates.ParseGlob(filepath.Join(filepath.Dir(exePath), cfg.TemplateDirPattern)); err != nil {
|
if err := templates.ParseGlob(filepath.Join(filepath.Dir(exePath), cfg.TemplateDirPattern)); err != nil {
|
||||||
log.Fatalf("Err 加载模版报错: %v", err)
|
log.Printf("[error] 加载模版报错: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,26 +53,27 @@ func ExecuteSingleDir(args []string) {
|
|||||||
// 查询目标文件
|
// 查询目标文件
|
||||||
erlFiles, err := worker1.FindPatternErlFiles(cfgPublic.Filename)
|
erlFiles, err := worker1.FindPatternErlFiles(cfgPublic.Filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Err FindPatternErlFiles: %v", err)
|
log.Printf("[error] FindPatternErlFiles: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if len(erlFiles) == 0 {
|
if len(erlFiles) == 0 {
|
||||||
log.Printf("Info 未检索到文件: %v", cfgPublic.Filename)
|
// log.Printf("[info] 未检索到文件: %v", cfgPublic.Filename)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, filename := range erlFiles {
|
for _, filename := range erlFiles {
|
||||||
|
log.Printf("[info] 检索到文件: %v %s\n", cfgPublic.Filename, filename)
|
||||||
// 根据配置解析出 文件数据
|
// 根据配置解析出 文件数据
|
||||||
parseTemKey, err := worker1.ParseTemKey(filename, cfgPublic)
|
parseTemKey, err := worker1.ParseTemKey(filename, cfgPublic)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("loading templates: %v", err)
|
log.Printf("[error] loading templates: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 输出文件夹
|
// 输出文件夹
|
||||||
outDir, err := worker1.FindPluginCfgFiles(cfgPublic.OutputSep, cfgPublic.OutDirName, filename)
|
outDir, err := worker1.FindPluginCfgFiles(cfgPublic.OutputSep, cfgPublic.OutDirName, filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Err 查找输出文件夹: %v", err)
|
log.Printf("[error] 查找输出文件夹: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,7 +85,11 @@ func ExecuteSingleDir(args []string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = os.WriteFile(outFileNema, []byte(strings.Join(parseTemKey, "\n\n")), os.ModePerm)
|
err = os.WriteFile(outFileNema, []byte(strings.Join(parseTemKey, "\n\n")), os.ModePerm)
|
||||||
fmt.Println(err)
|
if err != nil {
|
||||||
|
log.Printf("[warn] 生成文件失败: %v %s", err, outFileNema)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
log.Printf("[info] 生成文件: %s\n", outFileNema)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package zm_lib
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestP1(t *testing.T) {
|
||||||
|
|
||||||
|
fmt.Println("TestP1")
|
||||||
|
err := PrintArgsMap(map[string]any{
|
||||||
|
"id": []string{"1", "2", "3"},
|
||||||
|
"name": "苏通",
|
||||||
|
"data": map[string]any{
|
||||||
|
"layer": "2",
|
||||||
|
"haha": "3",
|
||||||
|
"child": map[string]any{
|
||||||
|
"layer": "2",
|
||||||
|
"haha": "3",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
fmt.Printf("%v\n", err)
|
||||||
|
}
|
||||||
@@ -2,6 +2,8 @@ package zm_lib
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -22,3 +24,30 @@ func GetPluginPathByWd(pluginName string) (string, error) {
|
|||||||
}
|
}
|
||||||
return "", errors.New("no find plugin")
|
return "", errors.New("no find plugin")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func PrintArgsMap(argsMap map[string]any) error {
|
||||||
|
return FprintfArgsMap(1, os.Stdout, argsMap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func FprintfArgsMap(layer int, out io.Writer, argsMap map[string]any) error {
|
||||||
|
for key, arg := range argsMap {
|
||||||
|
switch value := arg.(type) {
|
||||||
|
case map[string]any:
|
||||||
|
if _, err := fmt.Fprintf(out, "%s%s: \n", strings.Repeat("- ", layer), key); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := FprintfArgsMap(layer+1, out, value); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
case []string:
|
||||||
|
if _, err := fmt.Fprintf(out, "%s%s: [%v]\n", strings.Repeat("- ", layer), key, strings.Join(value, ",")); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
if _, err := fmt.Fprintf(out, "%s%s: %v\n", strings.Repeat("- ", layer), key, value); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user