aboutsummaryrefslogtreecommitdiff
path: root/cmd/acme/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/acme/config.go')
-rw-r--r--cmd/acme/config.go68
1 files changed, 16 insertions, 52 deletions
diff --git a/cmd/acme/config.go b/cmd/acme/config.go
index 0ff38e0..32a4451 100644
--- a/cmd/acme/config.go
+++ b/cmd/acme/config.go
@@ -7,40 +7,21 @@ import (
"strings"
"time"
- "dim13.org/acme"
"gopkg.in/yaml.v2"
)
const defKeySize = 2048
type Config struct {
- Defaults defaults
- Provider map[string]provider
- Account map[string]account
- Hook map[string]hook
- Desire map[string]desire
- Flow []flow
-}
-
-type flow struct {
- Provider string
- Account string
- Desire string
-}
-
-type defaults struct {
Gracetime time.Duration
Listen string
ListenTLS string
- Provider string
- Account string
Basedir string
KeySize int
-}
-
-type provider struct {
- Directory string
- *acme.Provider
+ Provider map[string]string
+ Account map[string]account
+ Desire map[string]desire
+ Hook map[string]string
}
type account struct {
@@ -49,12 +30,6 @@ type account struct {
KeySize int
Key string
registered bool
- *acme.Account
- acme.Contacts
-}
-
-type hook struct {
- CMD string
}
type desire struct {
@@ -65,10 +40,7 @@ type desire struct {
Key string
Cert string
Webroot string
- Hooks []string
- provider *provider
- account *account
- *acme.Desire
+ Hook []string
}
var (
@@ -91,12 +63,12 @@ func LoadConfig(fname string) (*Config, error) {
return nil, err
}
// apply defaults
- if c.Defaults.KeySize == 0 {
- c.Defaults.KeySize = defKeySize
+ if c.KeySize == 0 {
+ c.KeySize = defKeySize
}
for k, v := range c.Account {
if v.KeySize == 0 {
- v.KeySize = c.Defaults.KeySize
+ v.KeySize = c.KeySize
}
if v.Mail == "" {
return nil, errNoMail
@@ -104,30 +76,22 @@ func LoadConfig(fname string) (*Config, error) {
if v.Key == "" {
return nil, errNoKey
}
- if c.Defaults.Basedir != "" {
- v.Key = path.Join(c.Defaults.Basedir, v.Key)
+ if c.Basedir != "" {
+ v.Key = path.Join(c.Basedir, v.Key)
}
c.Account[k] = v
}
for k, v := range c.Desire {
if v.Provider == "" {
- if c.Defaults.Provider != "" {
- v.Provider = c.Defaults.Provider
- } else {
- return nil, errNoProvider
- }
+ return nil, errNoProvider
}
//v.provider = c.Provider[v.Provider]
if v.Account == "" {
- if c.Defaults.Account != "" {
- v.Account = c.Defaults.Account
- } else {
- return nil, errNoAccount
- }
+ return nil, errNoAccount
}
//v.account = c.Account[v.Account]
if v.KeySize == 0 {
- v.KeySize = c.Defaults.KeySize
+ v.KeySize = c.KeySize
}
if v.Key == "" {
return nil, errNoKey
@@ -135,9 +99,9 @@ func LoadConfig(fname string) (*Config, error) {
if v.Cert == "" {
return nil, errNoCert
}
- if c.Defaults.Basedir != "" {
- v.Key = path.Join(c.Defaults.Basedir, v.Key)
- v.Cert = path.Join(c.Defaults.Basedir, v.Cert)
+ if c.Basedir != "" {
+ v.Key = path.Join(c.Basedir, v.Key)
+ v.Cert = path.Join(c.Basedir, v.Cert)
}
switch len(v.Altnames) {
case 0: