summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--caddy.go9
-rw-r--r--storage.go15
2 files changed, 11 insertions, 13 deletions
diff --git a/caddy.go b/caddy.go
index fefe50b..ab7c014 100644
--- a/caddy.go
+++ b/caddy.go
@@ -61,11 +61,10 @@ type Config struct {
Logging *Logging `json:"logging,omitempty"`
// StorageRaw is a storage module that defines how/where Caddy
- // stores assets (such as TLS certificates). By default, this is
- // the local file system (`caddy.storage.file_system` module).
- // If the `XDG_DATA_HOME` environment variable is set, then
- // `$XDG_DATA_HOME/caddy` is the default folder. Otherwise,
- // `$HOME/.local/share/caddy` is the default folder.
+ // stores assets (such as TLS certificates). The default storage
+ // module is `caddy.storage.file_system` (the local file system),
+ // and the default path
+ // [depends on the OS and environment](/docs/conventions#data-directory).
StorageRaw json.RawMessage `json:"storage,omitempty" caddy:"namespace=caddy.storage inline_key=module"`
// AppsRaw are the apps that Caddy will load and run. The
diff --git a/storage.go b/storage.go
index b7dcfe4..03f7691 100644
--- a/storage.go
+++ b/storage.go
@@ -84,14 +84,13 @@ func homeDirUnsafe() string {
//
// Ref: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
func AppConfigDir() string {
- basedir := os.Getenv("XDG_CONFIG_HOME")
- if basedir == "" {
- var err error
- basedir, err = os.UserConfigDir()
- if err != nil {
- Log().Warn("unable to determine directory for user configuration; falling back to current directory", zap.Error(err))
- return "./caddy"
- }
+ if basedir := os.Getenv("XDG_CONFIG_HOME"); basedir != "" {
+ return filepath.Join(basedir, "caddy")
+ }
+ basedir, err := os.UserConfigDir()
+ if err != nil {
+ Log().Warn("unable to determine directory for user configuration; falling back to current directory", zap.Error(err))
+ return "./caddy"
}
subdir := "caddy"
switch runtime.GOOS {