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; +}