aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-01-07 21:39:56 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-01-07 21:39:56 +0100
commit0cfd5f5784f39c83eadcd21d619136f7cc620e91 (patch)
treeafc1cf9fa4a8798cf14344d25b64e62318584d49 /cmd
parentea9ec003b0a7e6e24a82e4ddd50e064918b57576 (diff)
More parallel
Diffstat (limited to 'cmd')
-rw-r--r--cmd/acme/main.go44
1 files changed, 23 insertions, 21 deletions
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index bbe27fc..c4a5101 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -11,14 +11,14 @@ import (
var confName = flag.String("conf", "acme.toml", "configuration file")
func main() {
+ var wg sync.WaitGroup
+
flag.Parse()
conf, err := LoadConfig(*confName)
if err != nil {
log.Fatal(err)
}
- var wg sync.WaitGroup
-
for k, acc := range conf.Account {
wg.Add(1)
go func(k string, acc *account) {
@@ -43,7 +43,6 @@ func main() {
conf.Account[k] = acc
}(k, acc)
}
-
for k, des := range conf.Desire {
wg.Add(1)
go func(k string, des *desire) {
@@ -56,7 +55,6 @@ func main() {
conf.Desire[k] = des
}(k, des)
}
-
for k, pro := range conf.Provider {
wg.Add(1)
go func(k string, pro *provider) {
@@ -69,29 +67,33 @@ func main() {
conf.Provider[k] = pro
}(k, pro)
}
-
wg.Wait()
for k, des := range conf.Desire {
- log.Println("process", k)
- if des.account.pending {
- err = des.provider.Register(des.account, des.account.Contacts)
- if err != nil {
- log.Fatal("register", err)
+ wg.Add(1)
+ go func(k string, des *desire) {
+ log.Println("process", k)
+ defer wg.Done()
+ if des.account.pending {
+ err = des.provider.Register(des.account, des.account.Contacts)
+ if err != nil {
+ log.Fatal("register", err)
+ }
}
- }
- err = des.provider.Authorize(des.account, des.Desire)
- if err != nil {
- log.Fatal("authz", err)
- }
+ err = des.provider.Authorize(des.account, des.Desire)
+ if err != nil {
+ log.Fatal("authz", err)
+ }
- err = des.provider.Cert(des.account, des.Desire)
- if err != nil {
- log.Fatal("cert", err)
- }
+ err = des.provider.Cert(des.account, des.Desire)
+ if err != nil {
+ log.Fatal("cert", err)
+ }
- des.SaveKey(des.Key)
- des.SaveCert(des.Cert)
+ des.SaveKey(des.Key)
+ des.SaveCert(des.Cert)
+ }(k, des)
}
+ wg.Wait()
}