serve.py supposait Python installé et une commande tapée dans un terminal depuis le dossier du dépôt. L'objectif ici : poser l'exécutable et son planning dans un dossier synchronisé, et les retrouver sur n'importe quelle machine sans rien installer. Le binaire embarque l'interface, expose les mêmes routes sur le même format, et cherche son projets.json à côté de lui. Compilé avec CGO_ENABLED=0, il ne dépend d'aucune bibliothèque système, pas même de la glibc ; build.sh produit les cinq plateformes depuis une seule machine. Le front est inchangé : les modules ES sont embarqués et servis tels quels, et --dev les sert depuis le disque pour développer sans recompiler. Deux ajustements dictés par le double-clic, où aucun drapeau ne peut être passé : le port se cherche à partir de 8000 s'il est occupé, et le fichier de données est résolu depuis l'exécutable et non depuis le répertoire courant. La décision 3 est rectifiée au passage : elle affirmait à tort que la File System Access API ne fonctionne pas depuis file://. Vérification faite, c'est CORS sur les modules ES qui ferme cette voie, pas la sécurité de l'API. serve.py est supprimé, le binaire l'ayant remplacé en usage réel. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
42 lines
1.2 KiB
Bash
Executable File
42 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
# Compile le binaire pour les plateformes usuelles, dans dist/.
|
|
#
|
|
# Aucune dépendance : CGO_ENABLED=0 produit un exécutable statique, qui ne
|
|
# réclame ni glibc ni runtime sur la machine où il atterrit. C'est ce qui
|
|
# permet de déposer le binaire dans un dossier synchronisé et de le lancer
|
|
# tel quel, quelle que soit la distribution.
|
|
#
|
|
# ./build.sh toutes les plateformes
|
|
# ./build.sh local seulement la machine courante, pour tester vite
|
|
set -eu
|
|
|
|
cd "$(dirname "$0")"
|
|
mkdir -p dist
|
|
|
|
# -s -w retirent la table des symboles et les infos de debug : environ 30 %
|
|
# de moins à synchroniser à chaque version.
|
|
DRAPEAUX='-s -w'
|
|
|
|
construire() {
|
|
os=$1
|
|
arch=$2
|
|
suffixe=${3:-}
|
|
sortie="dist/frise-$os-$arch$suffixe"
|
|
CGO_ENABLED=0 GOOS="$os" GOARCH="$arch" go build -ldflags="$DRAPEAUX" -o "$sortie" .
|
|
printf '%-28s %s\n' "$sortie" "$(du -h "$sortie" | cut -f1)"
|
|
}
|
|
|
|
go test ./...
|
|
|
|
if [ "${1:-}" = local ]; then
|
|
CGO_ENABLED=0 go build -ldflags="$DRAPEAUX" -o dist/frise .
|
|
printf '%-28s %s\n' dist/frise "$(du -h dist/frise | cut -f1)"
|
|
exit 0
|
|
fi
|
|
|
|
construire linux amd64
|
|
construire linux arm64
|
|
construire windows amd64 .exe
|
|
construire darwin amd64 # Mac Intel
|
|
construire darwin arm64 # Apple Silicon
|