aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cmd/commandfuncs.go9
-rw-r--r--cmd/commands.go8
2 files changed, 15 insertions, 2 deletions
diff --git a/cmd/commandfuncs.go b/cmd/commandfuncs.go
index c5264ed41..09accd0d3 100644
--- a/cmd/commandfuncs.go
+++ b/cmd/commandfuncs.go
@@ -506,6 +506,15 @@ func cmdAdaptConfig(fl Flags) (int, error) {
func cmdValidateConfig(fl Flags) (int, error) {
validateCmdConfigFlag := fl.String("config")
validateCmdAdapterFlag := fl.String("adapter")
+ runCmdLoadEnvfileFlag := fl.String("envfile")
+
+ // load all additional envs as soon as possible
+ if runCmdLoadEnvfileFlag != "" {
+ if err := loadEnvFromFile(runCmdLoadEnvfileFlag); err != nil {
+ return caddy.ExitCodeFailedStartup,
+ fmt.Errorf("loading additional environment variables: %v", err)
+ }
+ }
input, _, err := LoadConfig(validateCmdConfigFlag, validateCmdAdapterFlag)
if err != nil {
diff --git a/cmd/commands.go b/cmd/commands.go
index 83d3c99a1..9216b898a 100644
--- a/cmd/commands.go
+++ b/cmd/commands.go
@@ -287,16 +287,20 @@ zero exit status will be returned.`,
RegisterCommand(Command{
Name: "validate",
Func: cmdValidateConfig,
- Usage: "--config <path> [--adapter <name>]",
+ Usage: "--config <path> [--adapter <name>] [--envfile <path>]",
Short: "Tests whether a configuration file is valid",
Long: `
Loads and provisions the provided config, but does not start running it.
This reveals any errors with the configuration through the loading and
-provisioning stages.`,
+provisioning stages.
+
+If --envfile is specified, an environment file with environment variables in
+the KEY=VALUE format will be loaded into the Caddy process.`,
Flags: func() *flag.FlagSet {
fs := flag.NewFlagSet("validate", flag.ExitOnError)
fs.String("config", "", "Input configuration file")
fs.String("adapter", "", "Name of config adapter")
+ fs.String("envfile", "", "Environment file to load")
return fs
}(),
})