SEC-cyBERT/labelapp/entrypoint.sh
2026-03-29 16:37:51 -04:00

42 lines
1.1 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..."
bunx drizzle-kit migrate
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 SAMPLED_IDS_PATH=/app/labelapp/.sampled-ids.json
echo "==> Database is empty, seeding..."
bun run scripts/seed.ts
echo "==> Running sampling..."
bun run scripts/sample.ts
echo "==> Running assignment generation..."
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