From 217037413468628b8ddd638c4c2715c4e133137b Mon Sep 17 00:00:00 2001 From: Louis Mazin Date: Wed, 15 Apr 2026 00:23:03 +0200 Subject: [PATCH] test --- commands/server/server-clean.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/commands/server/server-clean.js b/commands/server/server-clean.js index 1992530..daf7956 100644 --- a/commands/server/server-clean.js +++ b/commands/server/server-clean.js @@ -122,7 +122,25 @@ async function runPlayersDeleter({ levelSavPath, uids }) { args.push('--allow-zlib-fallback'); } - const { stdout, stderr } = await execFileAsync(execPath, args, { timeout: 10 * 60 * 1000 }); + // Best effort: ensure the binary has execute permission on Linux containers. + await fs.chmod(execPath, 0o755).catch(() => {}); + + let stdout = ''; + let stderr = ''; + try { + const result = await execFileAsync(execPath, args, { timeout: 10 * 60 * 1000 }); + stdout = result.stdout; + stderr = result.stderr; + } catch (error) { + if (error && error.code === 'EACCES') { + throw new Error( + `Impossible d'exécuter players-deleter (${execPath}): permission refusée (EACCES). ` + + `Vérifie que le fichier est exécutable (chmod +x) et que le filesystem n'est pas monté en noexec. ` + + `Tu peux aussi définir PLAYERS_DELETER_PATH vers une commande exécutable.` + ); + } + throw error; + } const out = String(stdout || '').trim(); if (out) {