Make async

This commit is contained in:
2024-09-12 09:11:37 +02:00
parent 5cafdbf239
commit 63d9121e56
2 changed files with 21 additions and 12 deletions

31
main.go
View File

@@ -7,6 +7,7 @@ import (
"log" "log"
"os" "os"
"strings" "strings"
"sync"
"text/template" "text/template"
"github.com/PuerkitoBio/goquery" "github.com/PuerkitoBio/goquery"
@@ -58,20 +59,26 @@ func main() {
return return
} }
wg := sync.WaitGroup{}
for _, file := range files { for _, file := range files {
class, err := ParseFile(file) wg.Add(1)
if err != nil { go func(file string) {
Error.Printf("Error parsing file: %v", err) defer wg.Done()
continue class, err := ParseFile(file)
} if err != nil {
Error.Printf("Error parsing file: %v", err)
return
}
outfile, err := class.GetOutFile() outfile, err := class.GetOutFile()
if err != nil { if err != nil {
Error.Printf("Error creating output file: %v", err) Error.Printf("Error creating output file: %v", err)
return return
} }
ltemplate.Execute(outfile, class) ltemplate.Execute(outfile, class)
}(file)
} }
wg.Wait()
} }
func ParseFile(filename string) (*Class, error) { func ParseFile(filename string) (*Class, error) {
@@ -156,7 +163,7 @@ func ParseFile(filename string) (*Class, error) {
res.Methods = append(res.Methods, method) res.Methods = append(res.Methods, method)
}) })
// spew.Dump(res) spew.Dump(res)
return &res, nil return &res, nil
} }

View File

@@ -46,6 +46,8 @@ func (c *Class) GetOutFile() (*os.File, error) {
filename := fmt.Sprintf("%s.lua", c.ClassName) filename := fmt.Sprintf("%s.lua", c.ClassName)
filename = strings.ReplaceAll(filename, " ", "") filename = strings.ReplaceAll(filename, " ", "")
filename = strings.ReplaceAll(filename, "-", "") filename = strings.ReplaceAll(filename, "-", "")
filename = strings.ReplaceAll(filename, ",", "")
filename = strings.ReplaceAll(filename, ":", "")
f, err := os.Create(filename) f, err := os.Create(filename)
if err != nil { if err != nil {
return nil, err return nil, err