From bbc32568add92d5ab4b30480968417c5c37bf552 Mon Sep 17 00:00:00 2001 From: cupcakearmy Date: Mon, 26 Apr 2021 13:29:26 +0200 Subject: [PATCH] parallel builds --- build/build.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/build/build.go b/build/build.go index a688eb1..81eaecb 100644 --- a/build/build.go +++ b/build/build.go @@ -9,6 +9,7 @@ import ( "os/exec" "path" "path/filepath" + "sync" "github.com/cupcakearmy/autorestic/internal" ) @@ -27,7 +28,7 @@ type buildOptions struct { Target, Arch, Version string } -func build(options buildOptions) error { +func build(options buildOptions, wg *sync.WaitGroup) { fmt.Printf("Building %s %s\n", options.Target, options.Arch) out := fmt.Sprintf("autorestic_%s_%s_%s", options.Version, options.Target, options.Arch) out = path.Join(DIR, out) @@ -46,7 +47,7 @@ func build(options buildOptions) error { ) err := c.Run() if err != nil { - return err + panic(err) } } @@ -58,26 +59,25 @@ func build(options buildOptions) error { c.Stderr = os.Stderr err := c.Run() if err != nil { - return err + panic(err) } } - - return nil + wg.Done() } func main() { os.RemoveAll(DIR) v := internal.VERSION + var wg sync.WaitGroup for target, archs := range targets { for _, arch := range archs { - err := build(buildOptions{ + wg.Add(1) + build(buildOptions{ Target: target, Arch: arch, Version: v, - }) - if err != nil { - panic(err) - } + }, &wg) } } + wg.Wait() }