Resolve Custom script ids where the scripts actually live

The Custom/ prefix is a namespace, not a directory under SCRIPTS_DIR, so every
launcher that resolved it as one could never find the script.
This commit is contained in:
Gmer4Lfe
2026-08-08 12:47:26 -04:00
parent 2ab7d3d98a
commit 9cabb04395
3 changed files with 11 additions and 3 deletions
+4 -1
View File
@@ -74,7 +74,10 @@ if (!$id || !preg_match('/^[a-zA-Z0-9_.\/\-]+\.sh$/', $id) || str_contains($id,
exit; exit;
} }
$script = SCRIPTS_DIR . '/' . $id; // Custom scripts live outside the repo (CUSTOM_SCRIPTS_DIR) — everything else resolves under SCRIPTS_DIR.
$script = str_starts_with($id, 'Custom/')
? CUSTOM_SCRIPTS_DIR . '/' . substr($id, strlen('Custom/'))
: SCRIPTS_DIR . '/' . $id;
if (!file_exists($script)) { if (!file_exists($script)) {
echo json_encode(['ok' => false, 'error' => 'Script not found: ' . $id]); echo json_encode(['ok' => false, 'error' => 'Script not found: ' . $id]);
exit; exit;
+4 -1
View File
@@ -77,7 +77,10 @@ if (!$id || !preg_match('/^[a-zA-Z0-9_.\/\-]+\.sh$/', $id) || str_contains($id,
exit; exit;
} }
$script = SCRIPTS_DIR . '/' . $id; // Custom scripts live outside the repo (CUSTOM_SCRIPTS_DIR) — everything else resolves under SCRIPTS_DIR.
$script = str_starts_with($id, 'Custom/')
? CUSTOM_SCRIPTS_DIR . '/' . substr($id, strlen('Custom/'))
: SCRIPTS_DIR . '/' . $id;
if (!file_exists($script)) { if (!file_exists($script)) {
echo json_encode(['ok' => false, 'error' => 'Script not found: ' . $id]); echo json_encode(['ok' => false, 'error' => 'Script not found: ' . $id]);
exit; exit;
@@ -8,7 +8,9 @@ foreach (\$s as \$id => \$e) {
if (strncmp(\$id, '__', 2) === 0) continue; if (strncmp(\$id, '__', 2) === 0) continue;
if ((\$e['cron'] ?? '') !== 'array_start') continue; if ((\$e['cron'] ?? '') !== 'array_start') continue;
if (empty(\$e['enabled'])) continue; if (empty(\$e['enabled'])) continue;
\$script = SCRIPTS_DIR . '/' . \$id; \$script = strncmp(\$id, 'Custom/', 7) === 0
? CUSTOM_SCRIPTS_DIR . '/' . substr(\$id, 7)
: SCRIPTS_DIR . '/' . \$id;
if (!file_exists(\$script)) continue; if (!file_exists(\$script)) continue;
\$flags = !empty(\$e['log_enabled']) ? ' --log' : ''; \$flags = !empty(\$e['log_enabled']) ? ' --log' : '';
exec('nohup bash ' . escapeshellarg(\$runner) . ' ' . escapeshellarg(\$id) . ' ' . escapeshellarg(\$script) . \$flags . ' > /dev/null 2>&1 &'); exec('nohup bash ' . escapeshellarg(\$runner) . ' ' . escapeshellarg(\$id) . ' ' . escapeshellarg(\$script) . \$flags . ' > /dev/null 2>&1 &');