1.0.0 Alpha Release #59
1 changed files with 50 additions and 0 deletions
50
src/ncc/Classes/LuaExtension/LuaRunner.php
Normal file
50
src/ncc/Classes/LuaExtension/LuaRunner.php
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace ncc\Classes\LuaExtension;
|
||||||
|
|
||||||
|
use ncc\Abstracts\Runners;
|
||||||
|
use ncc\Interfaces\RunnerInterface;
|
||||||
|
use ncc\Objects\ExecutionPointers\ExecutionPointer;
|
||||||
|
use ncc\Objects\Package\ExecutionUnit;
|
||||||
|
use ncc\Objects\ProjectConfiguration\ExecutionPolicy;
|
||||||
|
use ncc\ThirdParty\Symfony\Process\Process;
|
||||||
|
use ncc\Utilities\Base64;
|
||||||
|
use ncc\Utilities\IO;
|
||||||
|
use ncc\Utilities\PathFinder;
|
||||||
|
|
||||||
|
class LuaRunner implements RunnerInterface
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function processUnit(string $path, ExecutionPolicy $policy): ExecutionUnit
|
||||||
|
{
|
||||||
|
$execution_unit = new ExecutionUnit();
|
||||||
|
$policy->Execute->Target = null;
|
||||||
|
$execution_unit->ExecutionPolicy = $policy;
|
||||||
|
$execution_unit->Data = Base64::encode(IO::fread($path));
|
||||||
|
|
||||||
|
return $execution_unit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function getFileExtension(): string
|
||||||
|
{
|
||||||
|
return '.lua';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public static function prepareProcess(ExecutionPointer $pointer): Process
|
||||||
|
{
|
||||||
|
$lua_bin = PathFinder::findRunner(Runners::lua);
|
||||||
|
|
||||||
|
if($pointer->ExecutionPolicy->Execute->Options !== null && count($pointer->ExecutionPolicy->Execute->Options) > 0)
|
||||||
|
return new Process(array_merge([$lua_bin, $pointer->FilePointer], $pointer->ExecutionPolicy->Execute->Options));
|
||||||
|
return new Process([$lua_bin, $pointer->FilePointer]);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue