From de6d4beef90dc4f5710d649172ebc316ac4f047d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mari=C3=A1n=20Skrip?= Date: Sat, 19 Feb 2022 01:56:02 +0100 Subject: [PATCH] feat(config): add option to specify default value to env var expansion (#5020) * feat: Add option to specify default value to env var expansion * fix: remove unused capturing group for env var replacement Co-authored-by: Nicolas Giard --- dev/build/config.yml | 4 ++-- server/helpers/config.js | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/dev/build/config.yml b/dev/build/config.yml index 6f1a61b4..d9e58761 100644 --- a/dev/build/config.yml +++ b/dev/build/config.yml @@ -15,6 +15,6 @@ ssl: provider: letsencrypt domain: $(LETSENCRYPT_DOMAIN) subscriberEmail: $(LETSENCRYPT_EMAIL) -logLevel: info -logFormat: $(LOG_FORMAT) +logLevel: $(LOG_LEVEL:info) +logFormat: $(LOG_FORMAT:default) ha: $(HA_ACTIVE) diff --git a/server/helpers/config.js b/server/helpers/config.js index 0e6ab563..6f972d40 100644 --- a/server/helpers/config.js +++ b/server/helpers/config.js @@ -8,14 +8,18 @@ module.exports = { /** * Parse configuration value for environment vars * + * Replaces `$(ENV_VAR_NAME)` with value of `ENV_VAR_NAME` environment variable. + * + * Also supports defaults by if provided as `$(ENV_VAR_NAME:default)` + * * @param {any} cfg Configuration value * @returns Parse configuration value */ parseConfigValue (cfg) { return _.replace( cfg, - /\$\(([A-Z0-9_]+)\)/g, - (fm, m) => { return process.env[m] } + /\$\(([A-Z0-9_]+)(?::(.+))?\)/g, + (fm, m, d) => { return process.env[m] || d } ) },