mid coding commit
This commit is contained in:
94
scripts/dev-setup.sh
Executable file
94
scripts/dev-setup.sh
Executable file
@@ -0,0 +1,94 @@
|
||||
#!/bin/bash
|
||||
# Development environment setup script
|
||||
# Installs dependencies and sets up development environment
|
||||
|
||||
set -e
|
||||
|
||||
echo "🚀 Setting up Archipelago development environment..."
|
||||
|
||||
# Check prerequisites
|
||||
echo "📋 Checking prerequisites..."
|
||||
|
||||
command -v rustc >/dev/null 2>&1 || { echo "❌ Rust is required. Install from https://rustup.rs/"; exit 1; }
|
||||
command -v node >/dev/null 2>&1 || { echo "❌ Node.js is required. Install from https://nodejs.org/"; exit 1; }
|
||||
command -v cargo >/dev/null 2>&1 || { echo "❌ Cargo is required. Install Rust toolchain."; exit 1; }
|
||||
|
||||
echo "✅ Prerequisites check passed"
|
||||
|
||||
# Get project root (assumes script is in scripts/)
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
|
||||
echo "📁 Project root: $PROJECT_ROOT"
|
||||
|
||||
# Check if we're in the right directory structure
|
||||
if [ ! -d "$PROJECT_ROOT/core" ] && [ ! -d "$PROJECT_ROOT/neode-ui" ]; then
|
||||
echo "⚠️ Warning: This script expects to be run from the Archipelago workspace."
|
||||
echo " If you're working with Code/Archipelago, you may need to adjust paths."
|
||||
read -p "Continue anyway? (y/n) " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Setup frontend
|
||||
if [ -d "$PROJECT_ROOT/neode-ui" ]; then
|
||||
echo "📦 Setting up frontend..."
|
||||
cd "$PROJECT_ROOT/neode-ui"
|
||||
if [ ! -d "node_modules" ]; then
|
||||
npm install
|
||||
else
|
||||
echo " node_modules already exists, skipping install"
|
||||
fi
|
||||
else
|
||||
echo "⚠️ neode-ui directory not found, skipping frontend setup"
|
||||
fi
|
||||
|
||||
# Setup backend
|
||||
if [ -d "$PROJECT_ROOT/core" ]; then
|
||||
echo "🔧 Setting up backend..."
|
||||
cd "$PROJECT_ROOT/core"
|
||||
|
||||
# Check if Cargo.toml exists
|
||||
if [ -f "Cargo.toml" ]; then
|
||||
echo " Fetching Rust dependencies..."
|
||||
cargo fetch
|
||||
else
|
||||
echo "⚠️ Cargo.toml not found in core/, skipping backend setup"
|
||||
fi
|
||||
else
|
||||
echo "⚠️ core directory not found, skipping backend setup"
|
||||
fi
|
||||
|
||||
# Check for Podman (optional)
|
||||
if command -v podman >/dev/null 2>&1; then
|
||||
echo "✅ Podman found: $(podman --version)"
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
if ! podman machine list | grep -q "running"; then
|
||||
echo "⚠️ Podman machine not running. Start with: podman machine start"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "⚠️ Podman not found (optional, needed for container features)"
|
||||
echo " Install: https://podman.io/getting-started/installation"
|
||||
fi
|
||||
|
||||
# Check for PostgreSQL (optional)
|
||||
if command -v psql >/dev/null 2>&1; then
|
||||
echo "✅ PostgreSQL found: $(psql --version)"
|
||||
else
|
||||
echo "⚠️ PostgreSQL not found (optional, needed for backend database)"
|
||||
echo " Install: https://www.postgresql.org/download/"
|
||||
echo " Or use Docker: docker run -d --name postgres -e POSTGRES_PASSWORD=dev -p 5432:5432 postgres:15"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "✅ Development environment setup complete!"
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo " 1. Start backend: cd core && cargo run --bin startbox"
|
||||
echo " 2. Start frontend: cd neode-ui && npm run dev"
|
||||
echo ""
|
||||
echo "Or use the mock backend for UI-only development:"
|
||||
echo " cd neode-ui && npm run dev:mock"
|
||||
Reference in New Issue
Block a user