[core] allow sys-config settings to come from the environment

This commit is contained in:
Shish 2024-01-17 20:19:13 +00:00
parent 8fe54794d8
commit fc6bb2d1b5
2 changed files with 12 additions and 2 deletions

View file

@ -9,7 +9,8 @@ namespace Shimmie2;
* Shimmie will set the values to their defaults
*
* All of these can be over-ridden by placing a 'define' in
* data/config/shimmie.conf.php
* data/config/shimmie.conf.php, or by setting an environment
* variable SHM_{$name} (eg SHM_DATABASE_DSN)
*
* Do NOT change them in this file. These are the defaults only!
*
@ -20,6 +21,15 @@ namespace Shimmie2;
function _d(string $name, mixed $value): void
{
if (!defined($name)) {
$env = getenv("SHM_{$name}");
if ($env !== false) {
try {
$value = json_decode($env);
}
catch(\Exception $e) {
$value = $env;
}
}
define($name, $value);
}
}

View file

@ -23,7 +23,7 @@ if (!file_exists("vendor/")) {
);
}
if (!file_exists("data/config/shimmie.conf.php")) {
if (!file_exists("data/config/shimmie.conf.php") && !getenv("SHM_DATABASE_DSN")) {
require_once "core/install.php";
install();
exit;