Compare commits

...

2 Commits

Author SHA1 Message Date
Pavel Shevaev 0d084aa072 Добавить CHANGELOG.md 2024-07-23 14:30:48 +03:00
Pavel Shevaev 762cfe2b2d Adding support for environment variables specified with .env root file
Publish PHP Package / docker (push) Successful in 6s Details
2024-07-23 14:23:04 +03:00
2 changed files with 35 additions and 0 deletions

2
CHANGELOG.md Normal file
View File

@ -0,0 +1,2 @@
## v1.1.0
- Adding support for root directory .env file which is used to set environment variables

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;