#!/bin/bash # TCKRTUIYO Start Script # Usage: # ./start.sh v1 - Start v1 (Flask) server # ./start.sh v2 - Start v2 (Vite) server # ./start.sh v1 v2 - Start both servers # ./start.sh v2 --expose - Expose v2 to network (0.0.0.0) # ./start.sh v1 v2 --expose 192.168.1.100 - Expose both to specific IP V1_PORT=8080 V2_PORT=5173 V1_HOST="127.0.0.1" V2_HOST="127.0.0.1" V1_PID="" V2_PID="" cleanup() { echo "" echo "Shutting down servers..." [ -n "$V1_PID" ] && kill $V1_PID 2>/dev/null [ -n "$V2_PID" ] && kill $V2_PID 2>/dev/null exit 0 } trap cleanup SIGINT SIGTERM start_v1=false start_v2=false expose_all=false expose_ip="" # Parse arguments for arg in "$@"; do case $arg in v1) start_v1=true ;; v2) start_v2=true ;; --expose) expose_all=true ;; *) # If it's an IP address, use it if [[ "$arg" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then expose_ip="$arg" fi ;; esac done # Set hosts based on expose flag if [ "$expose_all" = true ]; then if [ -n "$expose_ip" ]; then V1_HOST="$expose_ip" V2_HOST="$expose_ip" else V1_HOST="0.0.0.0" V2_HOST="0.0.0.0" fi fi start_v1_server() { echo "Starting v1 (Flask) on $V1_HOST:$V1_PORT..." cd "$(dirname "$0")" python3 src/app.py & V1_PID=$! } start_v2_server() { echo "Starting v2 (Vite) on $V2_HOST:$V2_PORT..." cd "$(dirname "$0")/v2" if [ "$V2_HOST" = "0.0.0.0" ]; then npm run dev -- --host & else npm run dev & fi V2_PID=$! } # Default: show usage if [ $# -eq 0 ]; then echo "Usage: $0 [v1|v2] [--expose [IP]]" echo "" echo "Examples:" echo " $0 v1 # Start v1 only (localhost)" echo " $0 v2 # Start v2 only (localhost)" echo " $0 v1 v2 # Start both v1 and v2" echo " $0 v2 --expose # Start v2 exposed to all (0.0.0.0)" echo " $0 v1 v2 --expose 192.168.1.100 # Expose both to specific IP" exit 1 fi [ "$start_v1" = true ] && start_v1_server [ "$start_v2" = true ] && start_v2_server echo "" echo "Servers running:" [ "$start_v1" = true ] && echo " - v1: http://$V1_HOST:$V1_PORT" [ "$start_v2" = true ] && echo " - v2: http://$V2_HOST:$V2_PORT" echo "" echo "Press Ctrl+C to stop all servers" # Wait for any process to exit wait