Versione del gioco (src/version.js, 0.1.0): immagini, musiche e voci con ?v=<versione> e cache lunga in nginx; scripts/bump.sh e make bump per le versioni nuove
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
This commit is contained in:
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
# Nuova versione: scrive la versione in src/version.js e package.json, verifica, fa il commit e crea il tag
|
||||
# annotato v<versione>. Con la versione cambiano gli indirizzi di immagini, musiche e voci (?v=): al prossimo
|
||||
# `make deploy` i browser le riscaricano invece di usare quelle in cache.
|
||||
# scripts/bump.sh [patch|minor|major] (default patch: 0.1.0 → 0.1.1)
|
||||
set -euo pipefail
|
||||
cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.."
|
||||
PARTE=${1:-patch}
|
||||
[[ $PARTE =~ ^(patch|minor|major)$ ]] || { echo "uso: $0 [patch|minor|major]"; exit 2; }
|
||||
[[ $(git branch --show-current) == main ]] || { echo "✗ non sono su main"; exit 1; }
|
||||
[[ -z $(git status --porcelain) ]] || { echo "✗ ci sono modifiche non committate: prima il commit"; git status --short; exit 1; }
|
||||
|
||||
ATTUALE=$(sed -n "s/^export const VERSION = '\([0-9.]*\)';$/\1/p" src/version.js)
|
||||
[[ $ATTUALE =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || { echo "✗ versione non leggibile in src/version.js"; exit 1; }
|
||||
IFS=. read -r MA MI PA <<<"$ATTUALE"
|
||||
case $PARTE in
|
||||
major) NUOVA="$((MA + 1)).0.0" ;;
|
||||
minor) NUOVA="$MA.$((MI + 1)).0" ;;
|
||||
patch) NUOVA="$MA.$MI.$((PA + 1))" ;;
|
||||
esac
|
||||
git rev-parse -q --verify "refs/tags/v$NUOVA" >/dev/null && { echo "✗ il tag v$NUOVA esiste già"; exit 1; }
|
||||
|
||||
sed -i "s/^export const VERSION = '$ATTUALE';$/export const VERSION = '$NUOVA';/" src/version.js
|
||||
python3 - "$NUOVA" <<'PY'
|
||||
import json, sys
|
||||
d = json.load(open('package.json')); d['version'] = sys.argv[1]
|
||||
open('package.json', 'w').write(json.dumps(d, indent=2, ensure_ascii=False) + '\n')
|
||||
PY
|
||||
if ! make -s verify; then
|
||||
git checkout -- src/version.js package.json
|
||||
echo "✗ verifiche fallite: versione rimessa a $ATTUALE"; exit 1
|
||||
fi
|
||||
git commit -q -am "Versione $NUOVA"
|
||||
git tag -a "v$NUOVA" -m "La Leggenda del Regolo $NUOVA"
|
||||
echo "✓ $ATTUALE → $NUOVA (commit e tag v$NUOVA); per pubblicarla: make deploy"
|
||||
Reference in New Issue
Block a user