mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-16 21:56:40 -05:00
cmd: fix auto-detetction of .caddyfile extension (#6356)
* cmd: fix auto-detetction of .caddyfile extension Signed-off-by: Mohammed Al Sahaf <msaa1990@gmail.com> * move conditions around and add clarifying comment Signed-off-by: Mohammed Al Sahaf <msaa1990@gmail.com> * reject ambiguous config file name Signed-off-by: Mohammed Al Sahaf <msaa1990@gmail.com> --------- Signed-off-by: Mohammed Al Sahaf <msaa1990@gmail.com>
This commit is contained in:
parent
f8a2c60297
commit
15faeacb60
1 changed files with 12 additions and 3 deletions
15
cmd/main.go
15
cmd/main.go
|
@ -163,9 +163,18 @@ func loadConfigWithLogger(logger *zap.Logger, configFile, adapterName string) ([
|
|||
// caddyfile adapter for convenience
|
||||
baseConfig := strings.ToLower(filepath.Base(configFile))
|
||||
baseConfigExt := filepath.Ext(baseConfig)
|
||||
if (strings.HasPrefix(baseConfig, "caddyfile") ||
|
||||
strings.HasSuffix(baseConfig, ".caddyfile")) &&
|
||||
(len(baseConfigExt) == 0 || caddyconfig.GetAdapter(baseConfigExt[1:]) == nil) &&
|
||||
startsOrEndsInCaddyfile := strings.HasPrefix(baseConfig, "caddyfile") || strings.HasSuffix(baseConfig, ".caddyfile")
|
||||
|
||||
// If the adapter is not specified, the config file is not starts with "caddyfile", and isn't a JSON file (e.g. Caddyfile.yaml),
|
||||
// then we don't know what the config format is.
|
||||
if adapterName == "" && startsOrEndsInCaddyfile && baseConfigExt != ".caddyfile" && baseConfigExt != ".json" {
|
||||
return nil, "", fmt.Errorf("ambiguous config file format; please specify adapter (use --adapter)")
|
||||
}
|
||||
|
||||
// If the config file starts or ends with "caddyfile",
|
||||
// the extension of the config file is not ".json", AND
|
||||
// the user did not specify an adapter, then we assume it's Caddyfile.
|
||||
if startsOrEndsInCaddyfile &&
|
||||
baseConfigExt != ".json" &&
|
||||
adapterName == "" {
|
||||
adapterName = "caddyfile"
|
||||
|
|
Loading…
Reference in a new issue