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:
@@ -74,7 +74,10 @@ if (!$id || !preg_match('/^[a-zA-Z0-9_.\/\-]+\.sh$/', $id) || str_contains($id,
|
||||
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)) {
|
||||
echo json_encode(['ok' => false, 'error' => 'Script not found: ' . $id]);
|
||||
exit;
|
||||
|
||||
@@ -77,7 +77,10 @@ if (!$id || !preg_match('/^[a-zA-Z0-9_.\/\-]+\.sh$/', $id) || str_contains($id,
|
||||
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)) {
|
||||
echo json_encode(['ok' => false, 'error' => 'Script not found: ' . $id]);
|
||||
exit;
|
||||
|
||||
@@ -8,7 +8,9 @@ foreach (\$s as \$id => \$e) {
|
||||
if (strncmp(\$id, '__', 2) === 0) continue;
|
||||
if ((\$e['cron'] ?? '') !== 'array_start') 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;
|
||||
\$flags = !empty(\$e['log_enabled']) ? ' --log' : '';
|
||||
exec('nohup bash ' . escapeshellarg(\$runner) . ' ' . escapeshellarg(\$id) . ' ' . escapeshellarg(\$script) . \$flags . ' > /dev/null 2>&1 &');
|
||||
|
||||
Reference in New Issue
Block a user