diff --git a/server/admin/versions.php b/server/admin/versions.php index 09534d6..5420c55 100644 --- a/server/admin/versions.php +++ b/server/admin/versions.php @@ -132,6 +132,34 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { saveManifest($manifestPath, $manifest); $message = "v{$version} retirée du manifest. Le ZIP reste dans builds/ (à supprimer en SFTP si voulu)."; } + elseif ($action === 'set_launcher') { + $lver = trim($_POST['launcher_version'] ?? ''); + $lmin = trim($_POST['launcher_min_required'] ?? ''); + if (!preg_match('/^\d+\.\d+\.\d+$/', $lver)) { + throw new Exception('Numéro de version launcher invalide (X.Y.Z attendu).'); + } + if ($lmin !== '' && !preg_match('/^\d+\.\d+\.\d+$/', $lmin)) { + throw new Exception('Numéro de version "minRequired" invalide.'); + } + $base = $config['base_url'] ?? 'https://asterionvr.com/PS_Launcher'; + $manifest['launcher'] = [ + 'version' => $lver, + 'minRequired' => $lmin !== '' ? $lmin : '0.5.0', + 'download' => [ + 'url' => "{$base}/builds/launcher/PSLauncher-{$lver}.exe", + 'sizeBytes' => 0, + 'sha256' => 'REPLACE_AFTER_BUILD', + ], + 'releaseNotesUrl' => null, + ]; + saveManifest($manifestPath, $manifest); + $message = "Section launcher mise à jour (v{$lver}). Upload PSLauncher-{$lver}.exe dans builds/launcher/ puis clique « Sync »."; + } + elseif ($action === 'remove_launcher') { + unset($manifest['launcher']); + saveManifest($manifestPath, $manifest); + $message = "Section launcher retirée du manifest (auto-update désactivé)."; + } elseif ($action === 'sync') { // Appel direct à la classe — pas d'exec(), fonctionne même quand la fonction // est désactivée par le mutualisé OVH. @@ -205,6 +233,81 @@ Layout::header('Versions', 'versions'); + +
+ Version annoncée : v= htmlspecialchars($launcher['version']) ?>
+ • minRequired : = htmlspecialchars($launcher['minRequired'] ?? '—') ?>
+ • Exe : = $launcherZipPresent
+ ? "présent"
+ : "absent" ?>
+ • Hash : = $launcherHashed
+ ? "OK"
+ : "à calculer" ?>
+
URL attendue de l'exe : = htmlspecialchars($launcher['download']['url']) ?>
Section launcher absente du manifest — l'auto-update est désactivé. Configure-la ci-dessous pour l'activer.
+ + +0.6.0).PSLauncher-X.Y.Z.exe via SFTP dans www/PS_Launcher/builds/launcher/.= htmlspecialchars($f) ?> — = Layout::formatBytes(filesize("$buildsDir/launcher/$f")) ?>