aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-03-12 02:52:26 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-03-12 02:52:26 +0100
commit24f86d7ec81d97d3fbbf689fd9626b5339084ab7 (patch)
tree982662e8730a65e0447e004d3ea876cee01610ac /cmd
parentc4f36380620bbbd24040801e037d1c99bb951409 (diff)
Split things
Diffstat (limited to 'cmd')
-rw-r--r--cmd/acme/main.go60
1 files changed, 33 insertions, 27 deletions
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index 9a2b91f..7097766 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -28,46 +28,52 @@ func dialProvider(p provider) error {
return nil
}
-func loadAccount(prov *acme.Provider, a account) error {
- var mustRegister bool
+func loadaccount(a account) (*acme.Account, error) {
key, err := a.Load()
if err != nil {
- if err == ErrNotFound {
- key, err = acme.NewKey(a.KeySize)
- if err != nil {
- return err
- }
- if err := a.Save(key); err != nil {
- return err
- }
- mustRegister = true
- } else {
- return err
- }
+ return nil, err
}
+ log.Println("Load", a.KeyFile)
+ return acme.NewAccount(key)
+}
+
+func register(prov *acme.Provider, a account) (*acme.Account, error) {
+ key, err := acme.NewKey(a.KeySize)
+ if err != nil {
+ return nil, err
+ }
+ defer a.Save(key)
acc, err := acme.NewAccount(key)
if err != nil {
- return err
+ return nil, err
}
- if mustRegister {
- con, err := acme.NewContacts(a.Mail, a.Phone)
- if err != nil {
- return err
- }
+ con, err := acme.NewContacts(a.Mail, a.Phone)
+ if err != nil {
+ return nil, err
+ }
- agree := func(tos string) bool {
- log.Println("agree to", tos)
- return true
- }
+ agree := func(tos string) bool {
+ log.Println("agree to", tos)
+ return true
+ }
- log.Println("Register", con)
- if err := prov.Register(acc, con, agree); err != nil {
+ log.Println("Register", con)
+ if err := prov.Register(acc, con, agree); err != nil {
+ return nil, err
+ }
+ return acc, nil
+}
+
+func loadAccount(prov *acme.Provider, a account) error {
+ acc, err := loadaccount(a)
+ if err != nil {
+ acc, err = register(prov, a)
+ if err != nil {
return err
}
}
-
for _, d := range a.Domain {
if err := requestCert(prov, acc, d); err != nil {
return err