diff --git a/Taskfile.yaml b/Taskfile.yaml index d886ff1..e953b38 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -44,7 +44,7 @@ tasks: generate: desc: Generate the gitignore.io templates cmds: - - go generate . + - go generate ./... build-windows: desc: Build the gignore project for Windows diff --git a/cmd/gen/gen.go b/cmd/gen/gen.go index e09a5d6..a84d269 100644 --- a/cmd/gen/gen.go +++ b/cmd/gen/gen.go @@ -20,10 +20,25 @@ func main() { log.Fatal(err) } + errChan := make(chan error) + doneChan := make(chan struct{}) + for _, template := range templates { - err := createTemplate(template) - if err != nil { - fmt.Fprintf(os.Stderr, "Failed to create template %s: %v\n", template.Name, err) + go func() { + err := createTemplate(template) + if err != nil { + errChan <- fmt.Errorf("Failed to create template %s: %v", template.Name, err) + return + } + doneChan <- struct{}{} + }() + } + + for range templates { + select { + case err := <-errChan: + log.Error(err) + case <-doneChan: } } }