From 0010a7257c8dab840b4a3b6632f860b746ee504f Mon Sep 17 00:00:00 2001 From: Netkas Date: Sat, 7 Jan 2023 02:49:40 -0500 Subject: [PATCH] Added Runtime Constant compiler --- .../SpecialConstants/RuntimeConstants.php | 5 ++++ .../Classes/NccExtension/ConstantCompiler.php | 27 +++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/ncc/Abstracts/SpecialConstants/RuntimeConstants.php b/src/ncc/Abstracts/SpecialConstants/RuntimeConstants.php index 751d28c..7d17c75 100644 --- a/src/ncc/Abstracts/SpecialConstants/RuntimeConstants.php +++ b/src/ncc/Abstracts/SpecialConstants/RuntimeConstants.php @@ -5,4 +5,9 @@ abstract class RuntimeConstants { const CWD = '%CWD%'; + + const PID = '%PID%'; + const UID = '%UID%'; + const GID = '%GID%'; + const User = '%USER%'; } \ No newline at end of file diff --git a/src/ncc/Classes/NccExtension/ConstantCompiler.php b/src/ncc/Classes/NccExtension/ConstantCompiler.php index 5ab4597..2b9c512 100644 --- a/src/ncc/Classes/NccExtension/ConstantCompiler.php +++ b/src/ncc/Classes/NccExtension/ConstantCompiler.php @@ -6,9 +6,8 @@ use ncc\Abstracts\SpecialConstants\DateTimeConstants; use ncc\Abstracts\SpecialConstants\InstallConstants; use ncc\Abstracts\SpecialConstants\AssemblyConstants; + use ncc\Abstracts\SpecialConstants\RuntimeConstants; use ncc\Objects\InstallationPaths; - use ncc\Objects\Package; - use ncc\Objects\ProjectConfiguration; use ncc\Objects\ProjectConfiguration\Assembly; class ConstantCompiler @@ -126,4 +125,28 @@ return $input; } + + /** + * @param string|null $input + * @return string|null + * @noinspection PhpUnnecessaryLocalVariableInspection + */ + public static function compileRuntimeConstants(?string $input): ?string + { + if ($input == null) + return null; + + if(function_exists('getcwd')) + $input = str_replace(RuntimeConstants::CWD, getcwd(), $input); + if(function_exists('getmypid')) + $input = str_replace(RuntimeConstants::PID, getmypid(), $input); + if(function_exists('getmyuid')) + $input = str_replace(RuntimeConstants::UID, getmyuid(), $input); + if(function_exists('getmygid')) + $input = str_replace(RuntimeConstants::GID, getmygid(), $input); + if(function_exists('get_current_user')) + $input = str_replace(RuntimeConstants::User, get_current_user(), $input); + + return $input; + } } \ No newline at end of file