diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3fd7c43 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/response.txt +/llmparse.exe diff --git a/llmparse.exe b/llmparse.exe deleted file mode 100644 index 9a49e93..0000000 Binary files a/llmparse.exe and /dev/null differ diff --git a/main.go b/main.go index 1039f5d..3634fd5 100644 --- a/main.go +++ b/main.go @@ -36,30 +36,28 @@ func main() { text := string(data) - // Regular expression to match each file block. - // It matches a line starting with "File:" followed by the file name, - // then a divider line with dashes, then captures everything until the next divider. - re := regexp.MustCompile(`(?s)File:\s*(.+?)\s*\n-+\n(.*?)(\n-+\n|$)`) + // Updated regular expression to handle both LF and CRLF line breaks. + re := regexp.MustCompile(`(?s)File:\s*(.+?)\s*\r?\n-+\r?\n(.*?)(\r?\n-+\r?\n|$)`) matches := re.FindAllStringSubmatch(text, -1) if matches == nil { log.Println("No file entries found in the input.") return } - // Ensure the output directory exists + // Ensure the output directory exists. if err := os.MkdirAll(*outDir, os.ModePerm); err != nil { log.Fatalf("Error creating output directory %s: %v", *outDir, err) } for _, match := range matches { - // match[1] will be the file name, match[2] the file content. + // match[1] is the file name, and match[2] is the file content. fileName := match[1] fileContent := match[2] // Create the full file path using the output directory. fullPath := filepath.Join(*outDir, fileName) - // Ensure that the directory for the file exists (in case there's nesting). + // Ensure that the directory for the file exists (in case there's nested directories). dir := filepath.Dir(fullPath) if err := os.MkdirAll(dir, os.ModePerm); err != nil { log.Printf("Error creating directory %s: %v", dir, err)