From 3e1a89a27dcd7847e80dd717bbed8360b322240c Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 17 Dec 2015 01:44:48 +0100 Subject: Catch more errors --- acme.toml | 4 ++++ cmd/acmed/config.go | 4 ++++ cmd/acmed/main.go | 38 ++++++++++++++++++++++++-------------- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/acme.toml b/acme.toml index 70a4bd8..abd8a8e 100644 --- a/acme.toml +++ b/acme.toml @@ -21,6 +21,10 @@ mail = "postmaster@example.com" phone = "+12025551212" key = "private/postmaster.key" +[account.notused] +mail = "notused@example.com" +key = "private/notused.key" + [hook.nginx] cmd = "sudo service nginx reload" diff --git a/cmd/acmed/config.go b/cmd/acmed/config.go index f1529b2..7f5ffbe 100644 --- a/cmd/acmed/config.go +++ b/cmd/acmed/config.go @@ -63,6 +63,7 @@ var ( errNoKey = errors.New("no key specified") errNoCert = errors.New("no cert specified") errNoAltNames = errors.New("no altnames specified") + errNoMail = errors.New("no mail specified") ) func LoadConfig(fname string) (*Config, error) { @@ -79,6 +80,9 @@ func LoadConfig(fname string) (*Config, error) { if v.KeySize == 0 { v.KeySize = c.Defaults.KeySize } + if v.Mail == "" { + return nil, errNoMail + } if v.Key == "" { return nil, errNoKey } diff --git a/cmd/acmed/main.go b/cmd/acmed/main.go index 5b69327..08a62f3 100644 --- a/cmd/acmed/main.go +++ b/cmd/acmed/main.go @@ -53,30 +53,40 @@ func chkKey(k PrivKey) (*rsa.PrivateKey, error) { } } -func main() { - flag.Parse() - conf, err := LoadConfig(*confName) - if err != nil { - log.Fatal(err) - } - - for k, acc := range conf.Account { +func chkKeys(c *Config) error { + var err error + for k, acc := range c.Account { acc.key, err = chkKey(acc) if err != nil { - log.Fatal(err) + return err } - conf.Account[k] = acc + c.Account[k] = acc } - - for k, des := range conf.Desire { + for k, des := range c.Desire { des.key, err = chkKey(des) if err != nil { - log.Fatal(err) + return err } - conf.Desire[k] = des + c.Desire[k] = des + } + return nil +} + +func main() { + flag.Parse() + conf, err := LoadConfig(*confName) + if err != nil { + log.Fatal(err) + } + err = chkKeys(conf) + if err != nil { + log.Fatal(err) } log.Println(conf) + for k, des := range conf.Desire { + log.Println(k, des.account) + } return for k, des := range conf.Desire { -- cgit v1.2.3