Skip to content
This repository was archived by the owner on May 21, 2025. It is now read-only.

Commit c85f641

Browse files
committed
support loading env variables from systemd's $CREDENTIALS_DIRECTORY
1 parent ec0f382 commit c85f641

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

src/init.php

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,17 @@ function get_magic_quotes_gpc(): bool {
1212

1313
$autoloader = require __DIR__ . '/../vendor/autoload.php';
1414

15+
16+
function getEnvVar(string $name): string {
17+
$var = getenv($name) ?: '';
18+
if (str_contains($var, '$CREDENTIALS_DIRECTORY')) {
19+
$credentialsDirectory = getenv('CREDENTIALS_DIRECTORY') ?? '';
20+
$path = str_replace('$CREDENTIALS_DIRECTORY', $credentialsDirectory, $var);
21+
$var = file_get_contents($path);
22+
}
23+
return trim($var);
24+
}
25+
1526
if (!getenv('DB_TYPE')) {
1627
Dotenv::createImmutable(__DIR__ . '/../')->safeLoad();
1728
}
@@ -27,13 +38,13 @@ function get_magic_quotes_gpc(): bool {
2738
}
2839
/** @var key-of<DriverManager::DRIVER_MAP> $driver */
2940

30-
$dbPassword = getenv('DB_PASSWORD') ?: '';
41+
$dbPassword = getEnvVar('DB_PASSWORD');
3142

3243
$connectionParams = [
33-
'dbname' => getenv('DB_DATABASE') ?: '',
34-
'user' => getenv('DB_USERNAME') ?: '',
35-
'host' => getenv('DB_HOST') ?: '',
36-
'port' => (int) getenv('DB_PORT'),
44+
'dbname' => getEnvVar('DB_DATABASE'),
45+
'user' => getEnvVar('DB_USERNAME'),
46+
'host' => getEnvVar('DB_HOST'),
47+
'port' => (int) getEnvVar('DB_PORT'),
3748
'driver' => $driver,
3849
];
3950

@@ -42,13 +53,13 @@ function get_magic_quotes_gpc(): bool {
4253
}
4354

4455
$db = DriverManager::getConnection($connectionParams);
45-
$host = getenv('BASE_HOST') ?: '';
46-
$storeRoot = getenv('DEMO_ROOT') ?: '';
47-
$storeHost = getenv('DEMO_HOST') ?: '';
48-
$parserPath = getenv('PARSER_PATH') ?: '';
49-
$appRoot = getenv('APP_ROOT') ?: '';
50-
$editKey = getenv('EDIT_SECRET') ?: '';
51-
$uploadKey = getenv('UPLOAD_KEY') ?: '';
56+
$host = getEnvVar('BASE_HOST');
57+
$storeRoot = getEnvVar('DEMO_ROOT');
58+
$storeHost = getEnvVar('DEMO_HOST');
59+
$parserPath = getEnvVar('PARSER_PATH');
60+
$appRoot = getEnvVar('APP_ROOT');
61+
$editKey = getEnvVar('EDIT_SECRET');
62+
$uploadKey = getEnvVar('UPLOAD_KEY');
5263

5364
$factory = new \RandomLib\Factory();
5465
$generator = $factory->getMediumStrengthGenerator();

0 commit comments

Comments
 (0)