- Remove old raw! layout components (~app-head, ~app-layout, ~oob-response, ~header-row, ~menu-row, ~oob-header, ~header-child) from layout.sexp - Convert nav-tree fragment from Jinja HTML to sexp source, fixing the "Unexpected character: ." parse error caused by HTML leaking into sexp - Add _as_sexp() helper to safely coerce HTML fragments to ~rich-text - Fix federation/sexp/search.sexpr extra closing paren - Remove dead _html() wrappers from blog and account sexp_components - Remove stale render import from cart sexp_components - Add dev_watcher.py to auto-reload on .sexp/.sexpr/.js/.css changes - Add test_parse_all.py to parse-check all 59 sexpr/sexp files - Fix test assertions for sx- attribute prefix (was hx-) - Add sexp.js version logging for cache debugging Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
26 lines
623 B
Bash
Executable File
26 lines
623 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# No database — skip DB wait and migrations
|
|
|
|
# Clear Redis page cache on deploy
|
|
if [[ -n "${REDIS_URL:-}" && "${REDIS_URL}" != "no" ]]; then
|
|
python3 -c "
|
|
import redis, os
|
|
r = redis.from_url(os.environ['REDIS_URL'])
|
|
r.flushdb()
|
|
" || echo "Redis flush failed (non-fatal), continuing..."
|
|
fi
|
|
|
|
# Start the app
|
|
RELOAD_FLAG=""
|
|
if [[ "${RELOAD:-}" == "true" ]]; then
|
|
RELOAD_FLAG="--reload"
|
|
python3 -m shared.dev_watcher &
|
|
fi
|
|
PYTHONUNBUFFERED=1 exec hypercorn "${APP_MODULE:-app:app}" \
|
|
--bind 0.0.0.0:${PORT:-8000} \
|
|
--workers ${WORKERS:-1} \
|
|
--keep-alive 75 \
|
|
${RELOAD_FLAG}
|