43 lines
919 B
Bash
Executable File
43 lines
919 B
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
ROOT="$(CDPATH= cd -- "$(dirname "$0")/.." && pwd)"
|
|
|
|
need_cmd() {
|
|
if ! command -v "$1" >/dev/null 2>&1; then
|
|
echo "missing required command: $1" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
need_cmd python3
|
|
need_cmd docker
|
|
need_cmd node
|
|
|
|
cd "$ROOT"
|
|
|
|
echo "[1/4] compile collector-service"
|
|
python3 -m compileall collector-service/app >/dev/null
|
|
|
|
echo "[2/4] validate docker compose"
|
|
docker compose config >/dev/null
|
|
|
|
echo "[3/4] validate n8n workflows"
|
|
python3 - <<'PY'
|
|
import json
|
|
import pathlib
|
|
|
|
for path in sorted(pathlib.Path("n8n/workflows").glob("*.json")):
|
|
with path.open() as handle:
|
|
json.load(handle)
|
|
print(f"workflow ok: {path.name}")
|
|
PY
|
|
|
|
echo "[4/4] validate web scripts"
|
|
for file in web/storyforge-web-v4/assets/app.js web/storyforge-web-v4/assets/storyforge-*.js; do
|
|
node --check "$file"
|
|
done
|
|
node --check scripts/douyin-browser-capture/control_panel.mjs
|
|
|
|
echo "baseline checks passed"
|