From 7088b2b5670f662d396a9b3a2a6229f7856fb59f Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 6 Mar 2016 03:47:34 +0100 Subject: Ensure dirs are made --- cmd/acme/config.go | 20 -------------------- cmd/acme/file.go | 12 ++++++++++-- 2 files changed, 10 insertions(+), 22 deletions(-) (limited to 'cmd') diff --git a/cmd/acme/config.go b/cmd/acme/config.go index 26ddedf..016df29 100644 --- a/cmd/acme/config.go +++ b/cmd/acme/config.go @@ -3,7 +3,6 @@ package main import ( "errors" "io/ioutil" - "os" "os/user" "path" "strings" @@ -55,10 +54,7 @@ type domain struct { } var ( - errNoProvider = errors.New("no provider specified") - errNoAccount = errors.New("no account specified") errNoKey = errors.New("no key file specified") - errNoCrt = errors.New("no crt file specified") errNoAltNames = errors.New("no altnames specified") errNoMail = errors.New("no mail specified") ) @@ -141,22 +137,6 @@ func LoadConfig(fname string) (*Config, error) { return c, nil } -type Dirmaker interface { - Mkdirs() error -} - -func (a account) Mkdirs() error { - return os.MkdirAll(path.Dir(a.KeyFile), 0700) -} - -func (d domain) Mkdirs() error { - err := os.MkdirAll(path.Dir(d.KeyFile), 0700) - if err != nil { - return err - } - return os.MkdirAll(path.Dir(d.CrtFile), 0755) -} - func replace(s string) string { return strings.Replace(s, ".", "_", -1) } diff --git a/cmd/acme/file.go b/cmd/acme/file.go index 6f54c31..c639fe9 100644 --- a/cmd/acme/file.go +++ b/cmd/acme/file.go @@ -5,6 +5,7 @@ import ( "crypto/tls" "io" "os" + "path" "syscall" "dim13.org/acme" @@ -20,7 +21,9 @@ func NewFile(fname string, mode os.FileMode) (io.WriteCloser, error) { } func (d domain) Save(cert tls.Certificate) error { - // save key + if err := os.MkdirAll(path.Dir(d.KeyFile), 0700); err != nil { + return err + } fd, err := NewFile(d.KeyFile, 0600) if err != nil { return err @@ -31,7 +34,9 @@ func (d domain) Save(cert tls.Certificate) error { return err } - // save certs + if err := os.MkdirAll(path.Dir(d.CrtFile), 0755); err != nil { + return err + } fd, err = NewFile(d.CrtFile, 0644) if err != nil { return err @@ -50,6 +55,9 @@ func (d domain) Load() (tls.Certificate, error) { } func (a account) Save(key crypto.PrivateKey) error { + if err := os.MkdirAll(path.Dir(a.KeyFile), 0700); err != nil { + return err + } fd, err := NewFile(a.KeyFile, 0600) if err != nil { return err -- cgit v1.2.3