feat: add start.sh script for running v1/v2 servers
This commit is contained in:
108
start.sh
Executable file
108
start.sh
Executable file
@@ -0,0 +1,108 @@
|
||||
#!/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> [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
|
||||
Reference in New Issue
Block a user