aboutsummaryrefslogtreecommitdiff
path: root/cmd/acme/main.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-01-07 18:32:30 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-01-07 18:32:30 +0100
commita52095ab5024fe0e44179ad558f59cdbe389910d (patch)
treedd78d959fdc8b48d2deb98c982d97ef34c8cb27e /cmd/acme/main.go
parentcbdfe178da985033d15593078cc6b56ae8215a19 (diff)
Refactor client
Diffstat (limited to 'cmd/acme/main.go')
-rw-r--r--cmd/acme/main.go73
1 files changed, 49 insertions, 24 deletions
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index 370bbf2..898536e 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -5,6 +5,7 @@ import (
"flag"
"log"
"os"
+ "sync"
"dim13.org/acme"
)
@@ -37,35 +38,59 @@ func main() {
log.Fatal(err)
}
+ var wg sync.WaitGroup
+
for k, acc := range conf.Account {
- acc.key, err = chkKey(acc)
- if err != nil {
- log.Fatal(err)
- }
- conf.Account[k] = acc
+ wg.Add(1)
+ go func(k string, acc *account) {
+ defer wg.Done()
+ log.Println("LoadAccount", k)
+ acc.Account, err = acme.LoadAccount(acc.Key)
+ if err != nil {
+ log.Println(err)
+ log.Println("NewAccount", k)
+ acc.Account, err = acme.NewAccount(acc.Size)
+ if err != nil {
+ log.Fatal(err)
+ }
+ }
+ acc.Contacts.AddMail(acc.Mail)
+ acc.Contacts.AddPhone(acc.Phone)
+ conf.Account[k] = acc
+ }(k, acc)
}
for k, des := range conf.Desire {
- des.key, err = chkKey(des)
- if err != nil {
- log.Fatal(err)
- }
- conf.Desire[k] = des
+ wg.Add(1)
+ go func(k string, des *desire) {
+ defer wg.Done()
+ log.Println("NewDesire", k)
+ des.Desire, err = acme.NewDesire(des.Altnames, des.Size)
+ if err != nil {
+ log.Fatal(err)
+ }
+ conf.Desire[k] = des
+ }(k, des)
}
- for k, des := range conf.Desire {
- a, _ := acme.NewAccount(des.account.key)
- c := acme.Contacts{}
- c.AddMail(des.account.Mail)
- c.AddPhone(des.account.Phone)
- log.Println(k, a)
- p, err := acme.NewProvider(des.provider.Directory)
- if err != nil {
- log.Fatal(err)
- }
- log.Println(k, p)
+ for k, pro := range conf.Provider {
+ wg.Add(1)
+ go func(k string, pro *provider) {
+ defer wg.Done()
+ log.Println("NewProvider", k)
+ pro.Provider, err = acme.NewProvider(pro.Directory)
+ if err != nil {
+ log.Fatal(err)
+ }
+ conf.Provider[k] = pro
+ }(k, pro)
+ }
- err = p.Register(a, c)
+ wg.Wait()
+
+ for k, des := range conf.Desire {
+ log.Println("process", k)
+ err = des.provider.Register(des.account, des.account.Contacts)
if err != nil {
log.Fatal("register", err)
}
@@ -75,12 +100,12 @@ func main() {
log.Fatal("newDesire", err)
}
- err = p.Authorize(a, d)
+ err = des.provider.Authorize(des.account, d)
if err != nil {
log.Fatal("authz", err)
}
- err = p.Cert(a, d)
+ err = des.provider.Cert(des.account, d)
if err != nil {
log.Fatal("cert", err)
}