Add serve-web target and web launcher scripts in the ChromeOS archive (0.9.2)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Denis Defolie
2026-10-12 14:15:16 +02:00
parent 0ec31fefa5
commit f4c69e1397
9 changed files with 69 additions and 10 deletions
+14 -4
View File
@@ -84,13 +84,23 @@ stage "${CHROMEOS}" build/android/aventuriers_des_mots.apk \
"stockage privé de l'application, ou du navigateur pour la version web"
mkdir -p "dist/${CHROMEOS}/web"
cp build/web/* "dist/${CHROMEOS}/web/"
cp tools/serve_web.py "dist/${CHROMEOS}/lancer-web.py"
cat > "dist/${CHROMEOS}/lancer-web.sh" <<'LAUNCH'
#!/usr/bin/env bash
cd "$(dirname "$0")" && exec python3 lancer-web.py
LAUNCH
chmod +x "dist/${CHROMEOS}/lancer-web.sh"
printf '@echo off\r\ncd /d "%%~dp0"\r\npy lancer-web.py || python lancer-web.py\r\n' \
> "dist/${CHROMEOS}/lancer-web.bat"
cat > "dist/${CHROMEOS}/LISEZMOI-WEB.txt" <<WEB
Version web (navigateur, hors ligne une fois servie localement)
Un navigateur ne lit pas ces fichiers directement : ils doivent être servis
par un petit serveur HTTP. Depuis le dossier web/ :
python3 -m http.server 8080
puis ouvrir http://localhost:8080 dans Chrome.
Lancer : double-clic sur lancer-web.sh (Linux, macOS) ou lancer-web.bat
(Windows), ou en terminal : python3 lancer-web.py
Python 3 est nécessaire. Le navigateur s'ouvre sur le jeu ; cliquer une
fois dans la page pour activer le son. Ctrl+C dans le terminal arrête le
serveur.
La progression est conservée dans le stockage du navigateur : ne pas
effacer les données du site, et utiliser l'espace adulte pour exporter.
WEB
+42
View File
@@ -0,0 +1,42 @@
#!/usr/bin/env python3
"""Sert la version web du jeu en local et ouvre le navigateur.
Usage : serve_web.py [dossier] (par defaut : le dossier « web » a cote du script)
Aucune connexion Internet : le serveur n'ecoute que sur 127.0.0.1.
"""
import functools
import http.server
import sys
import webbrowser
from pathlib import Path
PORTS = range(8080, 8100)
def main() -> int:
root = Path(sys.argv[1]) if len(sys.argv) > 1 else Path(__file__).resolve().parent / "web"
if not (root / "index.html").is_file():
print(f"index.html introuvable dans {root}", file=sys.stderr)
return 1
handler = functools.partial(http.server.SimpleHTTPRequestHandler, directory=str(root))
for port in PORTS:
try:
server = http.server.ThreadingHTTPServer(("127.0.0.1", port), handler)
except OSError:
continue
url = f"http://localhost:{port}/index.html"
print(f"Les Aventuriers des mots : {url}")
print("Cliquer une fois dans la page pour activer le son. Ctrl+C pour arreter.")
webbrowser.open(url)
try:
server.serve_forever()
except KeyboardInterrupt:
pass
return 0
print("Aucun port libre entre 8080 et 8099.", file=sys.stderr)
return 1
if __name__ == "__main__":
sys.exit(main())