compassmock/.dev-setup/apply-dev.sh

55 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
set -e
echo "🔧 Applying local development setup..."
if [ ! -f "package.json" ] || [ ! -d "src" ]; then
echo "❌ Error: Please run this script from the compass directory"
exit 1
fi
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# 1. Install sql.js
echo "📦 Installing sql.js..."
bun add sql.js
# 2. Copy dev files
echo "📦 Copying dev files..."
cp "$SCRIPT_DIR/files/middleware.ts" src/middleware.ts
cp "$SCRIPT_DIR/files/next.config.ts" next.config.ts
cp "$SCRIPT_DIR/files/cloudflare-context.ts" src/lib/cloudflare-context.ts
cp "$SCRIPT_DIR/files/db.ts" src/lib/db.ts
mkdir -p scripts
cp "$SCRIPT_DIR/files/init-local-db.ts" scripts/init-local-db.ts
# 3. Replace all @opennextjs/cloudflare imports with local wrapper
echo "📦 Updating imports..."
find src -name "*.ts" -o -name "*.tsx" | xargs sed -i '' 's|from "@opennextjs/cloudflare"|from "@/lib/db"|g'
# 4. Add db:init-local script to package.json if not present
if ! grep -q '"db:init-local"' package.json; then
echo "📦 Adding db:init-local script..."
# Use node to update package.json
node -e '
const fs = require("fs");
const pkg = JSON.parse(fs.readFileSync("package.json"));
pkg.scripts["db:init-local"] = "bun scripts/init-local-db.ts";
fs.writeFileSync("package.json", JSON.stringify(pkg, null, 2) + "\n");
'
fi
# 5. Initialize local database
echo "📦 Initializing local database..."
bun run db:init-local
echo ""
echo "✅ Development setup complete!"
echo ""
echo "📝 Notes:"
echo " - Local database stored in local.db"
echo " - Dev user: dev@compass.io (admin role)"
echo " - Run 'bun dev' to start"
echo ""
echo "🔄 To revert: run .dev-setup/restore-dev.sh"