SEC-cyBERT/labelapp/entrypoint.sh
2026-04-05 00:55:53 -04:00

39 lines
1.0 KiB
Bash

#!/bin/bash
set -euo pipefail
cd /app/labelapp
echo "==> Ensuring migration baseline..."
bun run scripts/ensure-migration-baseline.ts
echo "==> Running Drizzle migrations..."
bun run scripts/migrate.ts
echo "==> Checking if database needs seeding..."
ROW_COUNT=$(bun --eval "
import postgres from 'postgres';
const sql = postgres(process.env.DATABASE_URL);
const [{count}] = await sql\`SELECT count(*)::int as count FROM paragraphs\`;
console.log(count);
await sql.end();
" 2>/dev/null || echo "0")
if [ "$ROW_COUNT" = "0" ]; then
export SEED_PARAGRAPHS_PATH=/app/data/paragraphs-clean.jsonl
export SEED_ANNOTATIONS_PATH=/app/data/stage1.jsonl
export SEED_HOLDOUT_IDS_PATH=/app/data/v2-holdout-ids.json
echo "==> Database is empty, seeding..."
bun run scripts/seed.ts
echo "==> Generating assignments..."
bun run scripts/assign.ts
echo "==> Seeding complete."
else
echo "==> Database already seeded ($ROW_COUNT paragraphs). Skipping."
fi
echo "==> Starting Next.js server..."
exec bun run server.js