diff --git a/package.json b/package.json index 761e90497..df74a7af3 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,8 @@ "dev:full": "pnpm pre && concurrently -k \"pnpm run build-packages:watch\" \"pnpm run generate-sdks:watch\" \"pnpm run generate-setup-prompt-docs:watch\" \"turbo run dev --concurrency 99999\"", "dev": "pnpm pre && HEXCLAVE_DEV_UI=stream pnpm run dev:tasks", "dev:tui": "pnpm pre && HEXCLAVE_DEV_UI=tui pnpm run dev:tasks", - "dev:tasks": "turbo run dev build-packages:watch generate-sdks:watch generate-openapi-docs:watch generate-setup-prompt-docs:watch --ui ${HEXCLAVE_DEV_UI:?HEXCLAVE_DEV_UI must be set} --concurrency 99999 --filter=// --filter=./apps/* --filter=@hexclave/docs-mintlify --filter=./packages/* --filter=./examples/demo --filter=./examples/tanstack-start-demo", + "dev:tasks": "pnpm run check-deps && turbo run dev build-packages:watch generate-sdks:watch generate-openapi-docs:watch generate-setup-prompt-docs:watch --ui ${HEXCLAVE_DEV_UI:?HEXCLAVE_DEV_UI must be set} --concurrency 99999 --filter=// --filter=./apps/* --filter=@hexclave/docs-mintlify --filter=./packages/* --filter=./examples/demo --filter=./examples/tanstack-start-demo", + "check-deps": "bash ./scripts/check-deps.sh", "dev:inspect": "pnpm pre && STACK_BACKEND_DEV_EXTRA_ARGS=\"--inspect\" pnpm run dev", "dev:profile": "pnpm pre && STACK_BACKEND_DEV_EXTRA_ARGS=\"--experimental-cpu-prof\" pnpm run dev", "dev:basic": "pnpm pre && concurrently -k \"pnpm run build-packages:watch\" \"pnpm run generate-sdks:watch\" \"turbo run dev --concurrency 99999 --filter=@hexclave/backend --filter=@hexclave/bulldozer-js --filter=@hexclave/mcp --filter=@hexclave/dashboard --filter=@hexclave/mock-oauth-server\"", diff --git a/scripts/check-deps.sh b/scripts/check-deps.sh new file mode 100644 index 000000000..90b3956f9 --- /dev/null +++ b/scripts/check-deps.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +set -euo pipefail + +expected_services="$(pnpm run --silent deps-compose config --services)" +running_services="$(pnpm run --silent deps-compose ps --status running --services)" + +if [[ -z "$expected_services" ]]; then + echo "Error: The dependency Docker Compose configuration contains no services." >&2 + exit 1 +fi + +missing_services="$( + comm -23 \ + <(printf '%s\n' "$expected_services" | LC_ALL=C sort) \ + <(printf '%s\n' "$running_services" | LC_ALL=C sort) +)" + +if [[ -n "$missing_services" ]]; then + echo "Error: The following development dependency containers are not running:" >&2 + while IFS= read -r service; do + printf ' - %s\n' "$service" >&2 + done <<< "$missing_services" + echo "Run 'pnpm restart-deps' and try again." >&2 + exit 1 +fi