mirror of
https://codeberg.org/likwid/likwid.git
synced 2026-02-09 21:13:09 +00:00
83 lines
2.2 KiB
Bash
83 lines
2.2 KiB
Bash
#!/bin/bash
|
|
# Likwid Development Environment Starter
|
|
# Starts PostgreSQL (Podman), backend (Rust), and frontend (Astro)
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
STATE_DIR="$SCRIPT_DIR/.dev"
|
|
STATE_FILE="$STATE_DIR/state.json"
|
|
BACKEND_LOG="$STATE_DIR/backend.log"
|
|
FRONTEND_LOG="$STATE_DIR/frontend.log"
|
|
|
|
mkdir -p "$STATE_DIR"
|
|
|
|
# Environment defaults
|
|
export POSTGRES_USER="${POSTGRES_USER:-likwid}"
|
|
export POSTGRES_PASSWORD="${POSTGRES_PASSWORD:-likwid}"
|
|
export POSTGRES_DB="${POSTGRES_DB:-likwid}"
|
|
export DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@127.0.0.1:5432/${POSTGRES_DB}"
|
|
|
|
# Check if already running
|
|
if [ -f "$STATE_FILE" ]; then
|
|
BACKEND_PID=$(jq -r '.backendPid // empty' "$STATE_FILE" 2>/dev/null)
|
|
if [ -n "$BACKEND_PID" ] && kill -0 "$BACKEND_PID" 2>/dev/null; then
|
|
echo "Already running (backend PID $BACKEND_PID). Run dev-stop.sh first."
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
# Start PostgreSQL
|
|
echo "Starting PostgreSQL..."
|
|
podman-compose -f "$ROOT_DIR/compose/dev.yml" up -d 2>/dev/null || true
|
|
|
|
# Wait for PostgreSQL
|
|
echo "Waiting for PostgreSQL..."
|
|
for i in {1..30}; do
|
|
if nc -z 127.0.0.1 5432 2>/dev/null; then
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
# Start backend
|
|
echo "Starting backend..."
|
|
cd "$ROOT_DIR/backend"
|
|
cargo run > "$BACKEND_LOG" 2>&1 &
|
|
BACKEND_PID=$!
|
|
|
|
# Start frontend
|
|
echo "Starting frontend..."
|
|
cd "$ROOT_DIR/frontend"
|
|
PUBLIC_API_BASE="http://127.0.0.1:3000" npm run dev > "$FRONTEND_LOG" 2>&1 &
|
|
FRONTEND_PID=$!
|
|
|
|
# Save state
|
|
cat > "$STATE_FILE" << EOF
|
|
{
|
|
"backendPid": $BACKEND_PID,
|
|
"frontendPid": $FRONTEND_PID,
|
|
"startedAt": "$(date -Iseconds)"
|
|
}
|
|
EOF
|
|
|
|
sleep 3
|
|
|
|
# Status report
|
|
echo ""
|
|
echo "=== Likwid Dev Environment ==="
|
|
if kill -0 "$BACKEND_PID" 2>/dev/null; then
|
|
echo "Backend: Running (PID $BACKEND_PID) - http://127.0.0.1:3000"
|
|
else
|
|
echo "Backend: FAILED - check $BACKEND_LOG"
|
|
fi
|
|
if kill -0 "$FRONTEND_PID" 2>/dev/null; then
|
|
echo "Frontend: Running (PID $FRONTEND_PID) - http://localhost:4321"
|
|
else
|
|
echo "Frontend: FAILED - check $FRONTEND_LOG"
|
|
fi
|
|
echo "PostgreSQL: Running on port 5432"
|
|
echo ""
|
|
echo "Logs: $STATE_DIR"
|
|
echo "Stop: ./scripts/dev-stop.sh"
|