From 7fdde87849713596e218ded92fb461628a67e1ad Mon Sep 17 00:00:00 2001 From: Kenichi Kamiya Date: Sun, 30 Jul 2023 15:30:33 +0900 Subject: [PATCH] Run fmt parallel --- cmd/fmt/main.go | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/cmd/fmt/main.go b/cmd/fmt/main.go index f89250eb..fa0cb801 100644 --- a/cmd/fmt/main.go +++ b/cmd/fmt/main.go @@ -5,6 +5,7 @@ import ( "os" "os/exec" "strings" + "sync" doublestar "github.com/bmatcuk/doublestar/v4" ) @@ -25,10 +26,13 @@ func main() { log.Fatalln(err) } - cmds := []struct { + type command struct { path string args []string - }{ + } + + // Do not cover the same files in another formatter for parallel processing + cmds := []command{ {"dprint", []string{"fmt"}}, {"shfmt", append([]string{"--language-dialect", "bash", "--write"}, bashPaths...)}, {"nixpkgs-fmt", nixPaths}, @@ -36,11 +40,17 @@ func main() { {"go", []string{"fmt", "./..."}}, } + wg := &sync.WaitGroup{} for _, cmd := range cmds { - output, err := exec.Command(cmd.path, cmd.args...).Output() - log.Printf("%s %s\n%s\n", cmd.path, strings.Join(cmd.args, " "), output) - if err != nil { - log.Fatalln(err) - } + wg.Add(1) + go func(cmd command) { + defer wg.Done() + output, err := exec.Command(cmd.path, cmd.args...).Output() + log.Printf("%s %s\n%s\n", cmd.path, strings.Join(cmd.args, " "), output) + if err != nil { + log.Fatalln(err) + } + }(cmd) } + wg.Wait() }