skillhub/scripts/tests/dev-web-host-test.sh
FenjuFu bbdc0f7a0c
fix(dev): use bash for backend launchers (#721)
Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com>
2026-08-21 09:35:52 +08:00

35 lines
1.2 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
MAKEFILE="$REPO_ROOT/Makefile"
fail() {
echo "FAIL: $*" >&2
exit 1
}
grep -Eq '^DEV_WEB_HOST[[:space:]]*\?=[[:space:]]*127\.0\.0\.1$' "$MAKEFILE" \
|| fail "Makefile must default DEV_WEB_HOST to 127.0.0.1"
grep -Fq 'pnpm exec vite --host $(DEV_WEB_HOST)' "$MAKEFILE" \
|| fail "dev web startup must pass DEV_WEB_HOST to vite"
grep -Fq "cd server && bash -lc '\$(DEV_SERVER_PREPARE) && exec env \$(DEV_SERVER_SCANNER_ENV) \$(DEV_SERVER_CMD)'" "$MAKEFILE" \
|| fail "dev-server must inject scanner upload environment"
if grep -Fq "/bin/sh -lc '\$(DEV_SERVER_PREPARE)" "$MAKEFILE"; then
fail "backend dev launchers must use bash for bash-compatible login profiles"
fi
make -C "$REPO_ROOT" --no-print-directory dev-server \
DEV_SERVER_PREPARE='grep -q ready <(printf ready)' \
DEV_SERVER_SCANNER_ENV= \
DEV_SERVER_CMD=true >/dev/null \
|| fail "dev-server must execute bash-compatible preparation commands"
if grep -Fq 'pnpm exec vite --host 0.0.0.0' "$MAKEFILE"; then
fail "dev web startup must not bind Vite to 0.0.0.0 by default"
fi
echo "dev-web-host-test passed"