Skip to content

Commit 21eb77d

Browse files
authored
release(v3.2.1): fix asset stamper to stamp src/ templates + APP_QVER placeholders
1 parent b7bcaa8 commit 21eb77d

2 files changed

Lines changed: 27 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# Changelog
22

3-
## Changes 01/28/2026 (v3.2.0)
3+
## Changes 01/28/2026 (v3.2.0 & v3.2.1)
4+
5+
`release(v3.2.1): fix asset stamper to stamp src/ templates + APP_QVER placeholders`
6+
7+
- stamp-assets: include src/ alongside public/ for stamping
8+
- stamp-assets: replace {{APP_QVER}} in HTML/CSS/PHP templates and validate no placeholders remain
49

510
`release(v3.2.0): share pages revamp + portals browse/download-all + Pro branding upgrades`
611

scripts/stamp-assets.sh

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,34 @@ echo "VER=${VER} QVER=${QVER}"
1111

1212
cd "$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>
2135
HTML_CSS_COUNT=0
2236
while 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=... ---
2944
JS_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)
4156
if [[ -f public/js/version.js ]]; then
@@ -45,10 +60,10 @@ fi
4560
echo "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
5267
fi
5368

54-
echo "✅ Stamped to ${VER} (${QVER})"
69+
echo "✅ Stamped to ${VER} (${QVER})"

0 commit comments

Comments
 (0)