adsb-1090/scripts/fetch_flags.sh

54 lines
2.4 KiB
Bash
Executable File

#!/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"