@@ -11,19 +11,34 @@ echo "VER=${VER} QVER=${QVER}"
1111
1212cd " $TARGET "
1313
14+ # Directories to stamp (public assets + server-rendered PHP templates)
15+ STAMP_DIRS=()
16+ if [[ -d " public" ]]; then
17+ STAMP_DIRS+=(" public" )
18+ fi
19+ if [[ -d " src" ]]; then
20+ STAMP_DIRS+=(" src" )
21+ fi
22+
23+ if [[ ${# STAMP_DIRS[@]} -eq 0 ]]; then
24+ echo " No stampable directories found."
25+ exit 0
26+ fi
27+
1428# Normalize CRLF to LF (if any files were edited on Windows)
1529# We only touch web assets.
16- find public \( -name ' *.html' -o -name ' *.php' -o -name ' *.css' -o -name ' *.js' \) -type f -print0 \
30+ find " ${STAMP_DIRS[@]} " \( -name ' *.html' -o -name ' *.php' -o -name ' *.css' -o -name ' *.js' \) -type f -print0 \
1731 | xargs -0 -r sed -i ' s/\r$//'
1832
19- # --- HTML/CSS/PHP: stamp ?v=... and {{APP_VER}} ---
33+ # --- HTML/CSS/PHP: stamp ?v=... and {{APP_VER}}/{{APP_QVER}} ---
2034# (?v=...) -> ?v=<QVER>
2135HTML_CSS_COUNT=0
2236while IFS= read -r -d ' ' f; do
2337 sed -E -i " s/(\?v=)[^\" '&<>\s]*/\1${QVER} /g" " $f "
2438 sed -E -i " s/\{\{APP_VER\}\}/${VER} /g" " $f "
39+ sed -E -i " s/\{\{APP_QVER\}\}/${QVER} /g" " $f "
2540 HTML_CSS_COUNT=$(( HTML_CSS_COUNT+ 1 ))
26- done < <( find public -type f \( -name ' *.html' -o -name ' *.php' -o -name ' *.css' \) -print0)
41+ done < <( find " ${STAMP_DIRS[@]} " -type f \( -name ' *.html' -o -name ' *.php' -o -name ' *.css' \) -print0)
2742
2843# --- JS: stamp placeholders and normalize any pre-existing ?v=... ---
2944JS_COUNT=0
@@ -35,7 +50,7 @@ while IFS= read -r -d '' f; do
3550 # This keeps any ".js" or ".mjs" then forces ?v=<QVER>
3651 perl -0777 -i -pe " s@(\.m?js)\?v=[^\" ')]+@\1?v=${QVER} @g" " $f "
3752 JS_COUNT=$(( JS_COUNT+ 1 ))
38- done < <( find public -type f -name ' *.js' -print0)
53+ done < <( find " ${STAMP_DIRS[@]} " -type f -name ' *.js' -print0)
3954
4055# Force-write version.js (source of truth in stamped output)
4156if [[ -f public/js/version.js ]]; then
4560echo " Touched files: HTML/CSS/PHP=${HTML_CSS_COUNT} , JS=${JS_COUNT} "
4661
4762# Final self-check: fail if anything is left
48- if grep -R -n -E " {{APP_QVER}}|{{APP_VER}}" public \
63+ if grep -R -n -E " {{APP_QVER}}|{{APP_VER}}" " ${STAMP_DIRS[@]} " \
4964 --include=' *.html' --include=' *.php' --include=' *.css' --include=' *.js' 2> /dev/null; then
5065 echo " ERROR: Placeholders remain after stamping." >&2
5166 exit 2
5267fi
5368
54- echo " ✅ Stamped to ${VER} (${QVER} )"
69+ echo " ✅ Stamped to ${VER} (${QVER} )"
0 commit comments