From 3d9f8eac08e172d99eafb396f161263fd444c073 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Tue, 31 Dec 2019 22:51:55 -0700 Subject: Couple of minor fixes, update readme --- caddy.go | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'caddy.go') diff --git a/caddy.go b/caddy.go index ab7c014..dc4ea9e 100644 --- a/caddy.go +++ b/caddy.go @@ -23,7 +23,9 @@ import ( "io/ioutil" "log" "net/http" + "os" "path" + "path/filepath" "runtime/debug" "strconv" "strings" @@ -262,13 +264,21 @@ func unsyncedDecodeAndRun(cfgJSON []byte) error { newCfg.Admin.Config == nil || newCfg.Admin.Config.Persist == nil || *newCfg.Admin.Config.Persist) { - err := ioutil.WriteFile(ConfigAutosavePath, cfgJSON, 0600) - if err == nil { - Log().Info("autosaved config", zap.String("file", ConfigAutosavePath)) - } else { - Log().Error("unable to autosave config", - zap.String("file", ConfigAutosavePath), + dir := filepath.Dir(ConfigAutosavePath) + err := os.MkdirAll(dir, 0700) + if err != nil { + Log().Error("unable to create folder for config autosave", + zap.String("dir", dir), zap.Error(err)) + } else { + err := ioutil.WriteFile(ConfigAutosavePath, cfgJSON, 0600) + if err == nil { + Log().Info("autosaved config", zap.String("file", ConfigAutosavePath)) + } else { + Log().Error("unable to autosave config", + zap.String("file", ConfigAutosavePath), + zap.Error(err)) + } } } -- cgit v1.2.3