Adding support for environment variables specified with .env root file
Publish PHP Package / docker (push) Successful in 6s Details

This commit is contained in:
Pavel Shevaev 2024-07-23 14:23:03 +03:00
parent 9a8e6ceb11
commit 762cfe2b2d
1 changed files with 33 additions and 0 deletions

View File

@ -26,6 +26,8 @@ function put_env(&$argv)
{
global $GAME_ROOT;
_set_env_vars_from_file();
$env = '';
$filtered = array();
for($i=0;$i<sizeof($argv);++$i)
@ -53,6 +55,37 @@ function put_env(&$argv)
putenv("GAME_ENV=");
}
function _set_env_vars_from_file()
{
global $GAME_ROOT;
if(!file_exists($GAME_ROOT . '/.env'))
return;
$var_arrs = array();
$lines = file($GAME_ROOT . '/.env');
foreach($lines as $line)
{
$line = trim($line);
$line_is_comment = (substr(trim($line),0 , 1) == '#') ? true: false;
if($line_is_comment || empty(trim($line)))
continue;
// Split the line variable and succeeding comment on line if exists
$line_no_comment = explode("#", $line, 2)[0];
// Split the variable name and value
$env_ex = preg_split('/(\s?)\=(\s?)/', $line_no_comment);
$env_name = trim($env_ex[0]);
$env_value = isset($env_ex[1]) ? trim($env_ex[1]) : "";
$var_arrs[$env_name] = $env_value;
}
foreach($var_arrs as $k => $v)
putenv("$k=$v");
}
function set_root_env_name($root_name)
{
$GLOBALS['TASKMAN_ROOT_ENV_NAME'] = $root_name;