|
|
#!/bin/bash |
|
|
|
|
|
|
|
|
|
|
|
echo "π Starting HFStudio Development Environment..." |
|
|
echo "" |
|
|
|
|
|
|
|
|
echo "Checking for processes on ports 7860 and 11111..." |
|
|
if lsof -Pi :7860 -sTCP:LISTEN -t >/dev/null 2>&1 ; then |
|
|
echo "Killing process on port 7860..." |
|
|
lsof -Pi :7860 -sTCP:LISTEN -t | xargs kill -9 2>/dev/null |
|
|
fi |
|
|
|
|
|
if lsof -Pi :11111 -sTCP:LISTEN -t >/dev/null 2>&1 ; then |
|
|
echo "Killing process on port 11111..." |
|
|
lsof -Pi :11111 -sTCP:LISTEN -t | xargs kill -9 2>/dev/null |
|
|
fi |
|
|
|
|
|
echo "" |
|
|
|
|
|
|
|
|
if command -v tmux &> /dev/null; then |
|
|
|
|
|
tmux new-session -d -s hfstudio |
|
|
|
|
|
|
|
|
tmux split-window -h |
|
|
|
|
|
|
|
|
tmux send-keys -t hfstudio:0.0 'python -m hfstudio.cli dev-server --dev' C-m |
|
|
|
|
|
|
|
|
tmux send-keys -t hfstudio:0.1 'cd frontend && npm install && npm run dev' C-m |
|
|
|
|
|
|
|
|
tmux attach-session -t hfstudio |
|
|
else |
|
|
|
|
|
echo "Running without tmux (install tmux for better experience)" |
|
|
echo "" |
|
|
echo "Starting Backend..." |
|
|
python -m hfstudio.cli dev-server --dev & |
|
|
BACKEND_PID=$! |
|
|
|
|
|
echo "Starting Frontend..." |
|
|
cd frontend |
|
|
npm install |
|
|
npm run dev & |
|
|
FRONTEND_PID=$! |
|
|
|
|
|
echo "" |
|
|
echo "Services running:" |
|
|
echo " Frontend: http://localhost:11111" |
|
|
echo " Backend: http://localhost:7860" |
|
|
echo " API Docs: http://localhost:7860/docs" |
|
|
echo "" |
|
|
|
|
|
|
|
|
echo "Waiting for services to start..." |
|
|
sleep 3 |
|
|
|
|
|
|
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then |
|
|
|
|
|
open http://localhost:11111 |
|
|
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then |
|
|
|
|
|
xdg-open http://localhost:11111 2>/dev/null || sensible-browser http://localhost:11111 |
|
|
elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "win32" ]]; then |
|
|
|
|
|
start http://localhost:11111 |
|
|
fi |
|
|
|
|
|
echo "Browser opened at http://localhost:11111" |
|
|
echo "" |
|
|
echo "Press Ctrl+C to stop all services" |
|
|
|
|
|
|
|
|
trap "kill $BACKEND_PID $FRONTEND_PID" EXIT |
|
|
wait |
|
|
fi |