#!/bin/bash # Likwid Development Environment Stopper # Stops backend, frontend, and optionally PostgreSQL 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" STOP_DB="${1:-false}" echo "Stopping Likwid development environment..." # Read state file if [ -f "$STATE_FILE" ]; then BACKEND_PID=$(jq -r '.backendPid // empty' "$STATE_FILE" 2>/dev/null) FRONTEND_PID=$(jq -r '.frontendPid // empty' "$STATE_FILE" 2>/dev/null) # Stop backend if [ -n "$BACKEND_PID" ]; then if kill -0 "$BACKEND_PID" 2>/dev/null; then echo "Stopping backend (PID $BACKEND_PID)..." kill "$BACKEND_PID" 2>/dev/null || true sleep 1 kill -9 "$BACKEND_PID" 2>/dev/null || true fi fi # Stop frontend if [ -n "$FRONTEND_PID" ]; then if kill -0 "$FRONTEND_PID" 2>/dev/null; then echo "Stopping frontend (PID $FRONTEND_PID)..." kill "$FRONTEND_PID" 2>/dev/null || true sleep 1 kill -9 "$FRONTEND_PID" 2>/dev/null || true fi fi rm -f "$STATE_FILE" fi # Also kill any stray processes pkill -f "likwid" 2>/dev/null || true pkill -f "astro dev" 2>/dev/null || true # Stop PostgreSQL if requested if [ "$STOP_DB" = "--all" ] || [ "$STOP_DB" = "-a" ]; then echo "Stopping PostgreSQL..." podman-compose -f "$ROOT_DIR/compose/dev.yml" down 2>/dev/null || true fi echo "Done."