Fix directory structure: outputs/ for logs, runfiles/ for codex execution

This commit is contained in:
Warren Wong 2025-11-12 18:09:39 +00:00
parent 488e7a5db8
commit 9a3530fe66

20
run.php
View File

@ -27,8 +27,12 @@ if ($argc > 2 && is_numeric($argv[2])) {
} }
} }
// NEW: Use runfiles subdirectory // NEW: Create runfiles subdirectory for codex execution
$baseOutputDir = 'runfiles'; $runfilesDir = 'runfiles';
is_dir($runfilesDir) || mkdir($runfilesDir, 0777, true);
// Outputs directory for logs and summaries (as before)
$baseOutputDir = 'outputs';
is_dir($baseOutputDir) || mkdir($baseOutputDir, 0777, true); is_dir($baseOutputDir) || mkdir($baseOutputDir, 0777, true);
$runIdentifier = date('Ymd_His'); $runIdentifier = date('Ymd_His');
$runDir = sprintf('%s/run_%s', $baseOutputDir, $runIdentifier); $runDir = sprintf('%s/run_%s', $baseOutputDir, $runIdentifier);
@ -49,10 +53,15 @@ $logCli = function ($message, $channel = 'global') use (&$logFiles, $rawLogsDir)
echo $message; echo $message;
}; };
$logCli(sprintf("[%s] Run initialized in %s%s", date('Y-m-d H:i:s'), $runDir, PHP_EOL), 'startup'); $logCli(sprintf("[%s] Run initialized in %s%s", date('Y-m-d H:i:s'), $runDir, PHP_EOL), 'startup');
$logCli(sprintf("[%s] Codex execution directory: %s%s", date('Y-m-d H:i:s'), realpath($runfilesDir), PHP_EOL), 'startup');
if ($startFrom > 1) { if ($startFrom > 1) {
$logCli(sprintf("[%s] Starting from input line %d%s", date('Y-m-d H:i:s'), $startFrom, PHP_EOL), 'startup'); $logCli(sprintf("[%s] Starting from input line %d%s", date('Y-m-d H:i:s'), $startFrom, PHP_EOL), 'startup');
} }
$runCommand = function ($command, $channel = 'global') use ($logCli) { $runCommand = function ($command, $channel = 'global') use ($logCli, $runfilesDir) {
// Change to runfiles directory for execution
$originalDir = getcwd();
chdir($runfilesDir);
$descriptorSpec = [ $descriptorSpec = [
0 => ['pipe', 'r'], 0 => ['pipe', 'r'],
1 => ['pipe', 'w'], 1 => ['pipe', 'w'],
@ -60,6 +69,7 @@ $runCommand = function ($command, $channel = 'global') use ($logCli) {
]; ];
$process = proc_open($command, $descriptorSpec, $pipes); $process = proc_open($command, $descriptorSpec, $pipes);
if (!is_resource($process)) { if (!is_resource($process)) {
chdir($originalDir);
$logCli(sprintf("Failed to start command: %s%s", $command, PHP_EOL), $channel); $logCli(sprintf("Failed to start command: %s%s", $command, PHP_EOL), $channel);
return ['', '', 1]; return ['', '', 1];
} }
@ -126,6 +136,10 @@ $runCommand = function ($command, $channel = 'global') use ($logCli) {
} }
$exitCode = proc_close($process); $exitCode = proc_close($process);
// Change back to original directory
chdir($originalDir);
return [$stdout, $stderr, $exitCode]; return [$stdout, $stderr, $exitCode];
}; };