diff --git a/cmd/single_dir.go b/cmd/single_dir.go index 7a1adbd..5db0f7b 100644 --- a/cmd/single_dir.go +++ b/cmd/single_dir.go @@ -63,6 +63,7 @@ func ExecuteSingleDir(args []string) { } for _, filename := range erlFiles { + // 根据配置解析出 文件数据 parseTemKey, err := worker1.ParseTemKey(filename, cfgPublic) if err != nil { log.Fatalf("loading templates: %v", err) diff --git a/parser/erlang_module.go b/parser/erlang_module.go index 367ddf7..1a50b6a 100644 --- a/parser/erlang_module.go +++ b/parser/erlang_module.go @@ -20,7 +20,10 @@ func ParseErlangFile(filePath string) (*ModuleInfo, error) { if err != nil { return nil, fmt.Errorf("读取文件失败: %v", err) } + return ParseErlangFileByBytes(filePath, content) +} +func ParseErlangFileByBytes(filePath string, content []byte) (*ModuleInfo, error) { lines := strings.Split(string(content), "\n") moduleInfo := &ModuleInfo{ FilePath: filePath, diff --git a/worker/single_file.go b/worker/single_file.go index 1ad8769..6988517 100644 --- a/worker/single_file.go +++ b/worker/single_file.go @@ -23,11 +23,13 @@ func NewSingleFile(templater *template.Template) *SingleFile { func (s *SingleFile) ParseTemKey(filename string, Keyword config.ErlangTemKey) ([]string, error) { + // 解析整个文件 erlangFile, err := parser.ParseErlangFile(filename) if err != nil { return nil, err } + // 格式化 模板参数 var result []string for _, function := range erlangFile.Functions { if len(function.KeyMap[Keyword.Name]) == 0 { @@ -64,6 +66,8 @@ func (s *SingleFile) ParseTemKey(filename string, Keyword config.ErlangTemKey) ( } return result, nil } + +// 去除空行 func removeEmptyLinesUniversal(text string) string { var result strings.Builder scanner := bufio.NewScanner(strings.NewReader(text)) @@ -81,6 +85,11 @@ func removeEmptyLinesUniversal(text string) string { // FindConfigXMLPath 1. 打印当前 exe 文件夹内的 config.xml 文件的绝对路径 func (s *SingleFile) FindConfigXMLPath(cfgFile string) (string, error) { + // 判断是否是绝对路径若是则直接返回 + if filepath.IsAbs(cfgFile) { + return cfgFile, nil + } + // 获取可执行文件所在目录 exePath, err := os.Executable() if err != nil {