setear records al mismo tiempo

This commit is contained in:
Cat /dev/Nulo 2023-01-11 21:59:37 -03:00
parent 309386d21b
commit 574dce2794
1 changed files with 14 additions and 7 deletions

21
main.go
View File

@ -6,6 +6,7 @@ import (
"os" "os"
"os/exec" "os/exec"
"strings" "strings"
"sync"
"time" "time"
) )
@ -30,17 +31,23 @@ func main() {
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(10)*time.Second) ctx, cancel := context.WithTimeout(context.Background(), time.Duration(10)*time.Second)
defer cancel() defer cancel()
log.Printf("Running because of %s", reason) log.Printf("Running because of %s", reason)
var wg sync.WaitGroup
wg.Add(len(config.Domains))
for _, d := range config.Domains { for _, d := range config.Domains {
record, err := d.NameServer.SetRecord(ctx, d.Name, config.Ip) go func(d Domain, wg *sync.WaitGroup) {
if err != nil { record, err := d.NameServer.SetRecord(ctx, d.Name, config.Ip)
log.Println(err) if err != nil {
continue log.Println(err)
} // TODO: Reportar errores
log.Printf("[%s] Set to %s", d.Name, record) return
}
log.Printf("[%s] Set to %s", d.Name, record)
wg.Done()
}(d, &wg)
} }
case err := <-errch: case err := <-errch:
log.Fatal(err) log.Fatal(err)
} }
} }
} }