#!/bin/bash # Script to stop the test environment SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" PARENT_DIR="$(dirname "$SCRIPT_DIR")" # Colors for output GREEN='\033[0;32m' YELLOW='\033[0;33m' RED='\033[0;31m' NC='\033[0m' # No Color echo -e "${YELLOW}Stopping MYP test environment...${NC}" # Check if running in container IN_CONTAINER=false if [ -f /.dockerenv ]; then IN_CONTAINER=true fi # Check if Docker is available and if we need sudo NEED_SUDO=false if [ "$IN_CONTAINER" = false ]; then if ! docker ps &> /dev/null; then if sudo docker ps &> /dev/null; then echo -e "${YELLOW}Warning: Docker daemon requires sudo access. Will use sudo for all Docker commands.${NC}" NEED_SUDO=true fi fi fi # Function to run docker compose (handles both docker-compose and docker compose syntax) run_docker_compose() { if [ "$NEED_SUDO" = true ]; then if command -v docker-compose &> /dev/null; then sudo docker-compose "$@" else sudo docker compose "$@" fi else if command -v docker-compose &> /dev/null; then docker-compose "$@" else docker compose "$@" fi fi } # Stop the backend container echo "Stopping backend containers..." cd "$SCRIPT_DIR" run_docker_compose -f docker-compose.test.yml down # Stop the frontend development server if we started it if [ -f "$SCRIPT_DIR/frontend.pid" ]; then FRONTEND_PID=$(cat "$SCRIPT_DIR/frontend.pid") echo "Stopping frontend development server (PID: $FRONTEND_PID)..." if kill -0 $FRONTEND_PID 2>/dev/null; then kill $FRONTEND_PID echo "Frontend development server stopped" else echo "Frontend development server is not running with PID $FRONTEND_PID" fi rm -f "$SCRIPT_DIR/frontend.pid" rm -f "$SCRIPT_DIR/frontend.log" else echo "No frontend PID file found, assuming it was started externally" fi echo -e "${GREEN}Test environment has been stopped${NC}"