diff --git a/main.go b/main.go
index 7115dbc..4382ed8 100644
--- a/main.go
+++ b/main.go
@@ -3,6 +3,7 @@ package main
import (
"flag"
"fmt"
+ lua "github.com/yuin/gopher-lua"
"io"
"log"
"os"
@@ -10,8 +11,7 @@ import (
"regexp"
"strconv"
"strings"
-
- lua "github.com/yuin/gopher-lua"
+ "sync"
)
var Error *log.Logger
@@ -127,18 +127,24 @@ func main() {
return
}
+ var wg sync.WaitGroup
// Process each file
for _, file := range files {
- Info.Printf("🔄 Processing file: %s", file)
- err := processFile(file, pattern, luaExpr, originalLuaExpr)
- if err != nil {
- Error.Printf("❌ Failed to process file %s: %v", file, err)
- stats.FailedFiles++
- } else {
- Info.Printf("✅ Successfully processed file: %s", file)
- stats.ProcessedFiles++
- }
+ wg.Add(1)
+ go func(file string) {
+ defer wg.Done()
+ Info.Printf("🔄 Processing file: %s", file)
+ err := processFile(file, pattern, luaExpr, originalLuaExpr)
+ if err != nil {
+ Error.Printf("❌ Failed to process file %s: %v", file, err)
+ stats.FailedFiles++
+ } else {
+ Info.Printf("✅ Successfully processed file: %s", file)
+ stats.ProcessedFiles++
+ }
+ }(file)
}
+ wg.Wait()
// Print summary of all modifications
printSummary(originalLuaExpr)
diff --git a/main_test.go b/main_test.go
index 62f145f..92aee22 100644
--- a/main_test.go
+++ b/main_test.go
@@ -80,6 +80,38 @@ func TestShorthandNotation(t *testing.T) {
}
}
+func TestShorthandNotationFloats(t *testing.T) {
+ fileContents := `
+
+ -
+ 132.671327
+
+
+ `
+ expected := `
+
+ -
+ 176.01681007940928
+
+
+ `
+
+ regex := regexp.MustCompile(`(?s)(\d*\.?\d+)`)
+ luaExpr := `v1 * 1.32671327` // Use direct assignment syntax
+ luaScript := buildLuaScript(luaExpr)
+
+ modifiedContent, _, _, err := process(fileContents, regex, luaScript, "test.xml", luaExpr )
+ if err != nil {
+ t.Fatalf("Error processing file: %v", err)
+ }
+
+ normalizedModified := normalizeWhitespace(modifiedContent)
+ normalizedExpected := normalizeWhitespace(expected)
+ if normalizedModified != normalizedExpected {
+ t.Fatalf("Expected modified content to be %q, but got %q", normalizedExpected, normalizedModified)
+ }
+}
+
func TestArrayNotation(t *testing.T) {
fileContents := `