hostbasket/sigsocket/examples/run_example.sh
2025-05-19 14:48:40 +03:00

54 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Script to run both the SigSocket web app and client app and open them in the browser
# Set the base directory
BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
WEB_APP_DIR="$BASE_DIR/web_app"
CLIENT_APP_DIR="$BASE_DIR/client_app"
# Colors for terminal output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Function to kill background processes on exit
cleanup() {
echo -e "${YELLOW}Stopping all processes...${NC}"
kill $(jobs -p) 2>/dev/null
exit 0
}
# Set up cleanup on script termination
trap cleanup INT TERM EXIT
echo -e "${GREEN}Starting SigSocket Demo Applications...${NC}"
# Start the web app in the background
echo -e "${GREEN}Starting Web App (http://127.0.0.1:8080)...${NC}"
cd "$WEB_APP_DIR" && cargo run &
# Wait for the web app to start (adjust time as needed)
echo "Waiting for web app to initialize..."
sleep 5
# Start the client app in the background
echo -e "${GREEN}Starting Client App (http://127.0.0.1:8082)...${NC}"
cd "$CLIENT_APP_DIR" && cargo run &
# Wait for the client app to start
echo "Waiting for client app to initialize..."
sleep 5
# Open browsers (works on macOS)
echo -e "${GREEN}Opening browsers...${NC}"
open "http://127.0.0.1:8080" # Web App
sleep 1
open "http://127.0.0.1:8082" # Client App
echo -e "${GREEN}SigSocket demo is running!${NC}"
echo -e "${YELLOW}Press Ctrl+C to stop all applications${NC}"
# Keep the script running until Ctrl+C
wait