diff --git a/install/SYS_PRD_BND.PyPi.sql b/install/SYS_PRD_BND.PyPi.sql new file mode 100644 index 0000000..625dac9 --- /dev/null +++ b/install/SYS_PRD_BND.PyPi.sql @@ -0,0 +1,8 @@ +USE SYS_PRD_BND; +CREATE TABLE `PyPi` ( + `LibName` varchar(255) NOT NULL, + `AliasName` varchar(255) DEFAULT NULL, + `LastUpdated` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + PRIMARY KEY (`LibName`) +); + diff --git a/plt/generatePythonTriggerCode.inc.php b/plt/generatePythonTriggerCode.inc.php new file mode 100644 index 0000000..f185cde --- /dev/null +++ b/plt/generatePythonTriggerCode.inc.php @@ -0,0 +1,51 @@ + ' ' . $line, explode("\n", $pyCode))); + + // Assemble complete Python script + $pythonCode = << ['pipe', 'w'], // stdout + 2 => ['pipe', 'w'], // stderr + ]; + + // Execute the Python code using proc_open + $process = proc_open($command, $descriptorspec, $pipes); + + if (!is_resource($process)) { + unlink($tempFile); + throw new Exception('Failed to execute sandboxed Python code.'); + } + + // Capture stdout and stderr + $stdout = stream_get_contents($pipes[1]); + fclose($pipes[1]); + + $stderr = stream_get_contents($pipes[2]); + fclose($pipes[2]); + + // Get the exit code + $exitCode = proc_close($process); + + // Cleanup temporary file + unlink($tempFile); + + return $exitCode; +}