#!/usr/bin/env bash # ═══════════════════════════════════════════════════════════════════════════════ # fetch_flags.sh — récupère les drapeaux en local, pour ne plus dépendre du CDN # # Par défaut la webapp charge les drapeaux depuis flagcdn.com (domaine public, # libre d'usage, sans attribution). Ce script les rapatrie dans # webapp/src/assets/flags/ pour un fonctionnement entièrement hors ligne. # # Après exécution, passer FLAG_LOCAL à true dans js/app.js : # sed -i 's/const FLAG_LOCAL = false;/const FLAG_LOCAL = true;/' \ # /data/adsb/webapp/src/js/app.js # # Poids total : environ 200 Ko pour ~100 pays. # # Licence : les drapeaux nationaux sont des symboles d'État, non couverts par # le droit d'auteur. flagcdn.com les distribue en domaine public. # ═══════════════════════════════════════════════════════════════════════════════ set -euo pipefail DEST="${1:-/data/adsb/webapp/src/assets/flags}" BASE="https://flagcdn.com/24x18" # Codes ISO alignés sur la table COUNTRY_ISO de app.js CODES="fr de es it pt be nl lu ch at gb ie dk no se fi is pl cz sk hu ro bg gr hr si rs ba al mt cy ee lv lt ua by ru tr us ca mx br ar cl co pe ve cn jp kr in pk th vn sg my id ph au nz il sa qa ae kw bh om jo lb eg ma dz tn ly za ng ke et gh sn ci cm ga mc sm ad li im gg je bm ky aw bs pa cr do cu jm kz uz az ge am md me mk ir iq sy af bd lk np mm kh la mn tw hk mo" mkdir -p "$DEST" ok=0; ko=0 for c in $CODES; do if [ -s "$DEST/$c.png" ]; then ok=$((ok+1)); continue fi if curl -fsSL --max-time 10 "$BASE/$c.png" -o "$DEST/$c.png" 2>/dev/null; then ok=$((ok+1)) else rm -f "$DEST/$c.png" echo " échec : $c" >&2 ko=$((ko+1)) fi done echo "$ok drapeau(x) disponible(s) dans $DEST" [ "$ko" -gt 0 ] && echo "$ko échec(s) — ces pays retomberont sur le pictogramme « inconnu »" echo echo "Pour activer l'hébergement local :" echo " sed -i 's/const FLAG_LOCAL = false;/const FLAG_LOCAL = true;/' \\" echo " /data/adsb/webapp/src/js/app.js" echo " docker cp /data/adsb/webapp/src/js/app.js adsb-webapp:/var/www/html/js/app.js"