From 573b6ece895735ab1a5ba58bc367252f255bd9d7 Mon Sep 17 00:00:00 2001 From: dacto Date: Wed, 25 Mar 2020 11:30:16 -0700 Subject: [PATCH] Process `Setting`s from environment and settingoverrides values the same: (#660) * fixes handling strings representing bools from settingoverrides .txt files * trailing newline characters are now stripped --- helpers/extensions.php | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/helpers/extensions.php b/helpers/extensions.php index 5a69eef7..6cdcb203 100644 --- a/helpers/extensions.php +++ b/helpers/extensions.php @@ -138,6 +138,20 @@ function BoolToString(bool $bool) return $bool ? 'true' : 'false'; } +function ExternalSettingValue(string $value) +{ + $tvalue = rtrim($value, "\r\n"); + $lvalue = strtolower($tvalue); + if ($lvalue === "true"){ + return true; + } + elseif ($lvalue === "false") + { + return false; + } + return $tvalue; +} + function Setting(string $name, $value) { if (!defined('GROCY_' . $name)) @@ -146,22 +160,11 @@ function Setting(string $name, $value) $settingOverrideFile = GROCY_DATAPATH . '/settingoverrides/' . $name . '.txt'; if (file_exists($settingOverrideFile)) { - define('GROCY_' . $name, file_get_contents($settingOverrideFile)); + define('GROCY_' . $name, ExternalSettingValue(file_get_contents($settingOverrideFile))); } elseif (getenv('GROCY_' . $name) !== false) // An environment variable with the same name and prefix GROCY_ overwrites the given setting { - if (strtolower(getenv('GROCY_' . $name)) === "true") - { - define('GROCY_' . $name, true); - } - elseif (strtolower(getenv('GROCY_' . $name)) === "false") - { - define('GROCY_' . $name, false); - } - else - { - define('GROCY_' . $name, getenv('GROCY_' . $name)); - } + define('GROCY_' . $name, ExternalSettingValue(getenv('GROCY_'. $name))); } else {