mnemo_cards/games/apps/web_app1/quick_restart.sh

83 lines
3 KiB
Bash
Raw Permalink Normal View History

2025-11-10 23:55:41 +00:00
#!/bin/bash
# Скрипт для быстрого перезапуска web приложения
# Использование: ./quick_restart.sh [hostname] [port]
# Цвета для вывода
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Параметры по умолчанию
HOSTNAME=${1:-"192.168.31.142"}
PORT=${2:-"8080"}
echo -e "${BLUE}⚡ Быстрый перезапуск web приложения${NC}"
echo -e "${YELLOW}Hostname: $HOSTNAME${NC}"
echo -e "${YELLOW}Port: $PORT${NC}"
echo ""
# Функция для остановки процесса на порту
stop_process_on_port() {
local port=$1
echo -e "${YELLOW}🛑 Останавливаю процесс на порту $port...${NC}"
# Находим PID процесса на порту
local pid=$(lsof -ti:$port 2>/dev/null)
if [ -n "$pid" ]; then
echo -e "${YELLOW}Найден процесс PID: $pid${NC}"
kill -9 $pid 2>/dev/null
echo -e "${GREEN}✅ Процесс остановлен${NC}"
else
echo -e "${GREEN}✅ Порт $port свободен${NC}"
fi
}
# Функция для быстрого запуска
quick_start() {
echo -e "${YELLOW}🚀 Быстрый запуск приложения на http://$HOSTNAME:$PORT...${NC}"
flutter run -d web-server --web-hostname $HOSTNAME --web-port $PORT &
local app_pid=$!
echo -e "${GREEN}✅ Приложение запущено (PID: $app_pid)${NC}"
echo -e "${BLUE}🌐 Доступно по адресу: http://$HOSTNAME:$PORT${NC}"
}
# Основной процесс
main() {
echo -e "${BLUE}================================${NC}"
echo -e "${BLUE} Quick Flutter Web Restart${NC}"
echo -e "${BLUE}================================${NC}"
echo ""
# Проверяем, что мы в правильной директории
if [ ! -f "pubspec.yaml" ]; then
echo -e "${RED}❌ Ошибка: pubspec.yaml не найден${NC}"
echo -e "${RED}Убедитесь, что вы находитесь в директории Flutter проекта${NC}"
exit 1
fi
# Останавливаем процесс на порту
stop_process_on_port $PORT
# Ждем немного для освобождения порта
sleep 1
# Быстрый запуск
quick_start
echo ""
echo -e "${GREEN}🎉 Быстрый перезапуск завершен!${NC}"
echo -e "${BLUE}Приложение доступно по адресу: http://$HOSTNAME:$PORT${NC}"
echo ""
echo -e "${YELLOW}Для остановки приложения используйте:${NC}"
echo -e "${YELLOW} lsof -ti:$PORT | xargs kill -9${NC}"
echo ""
echo -e "${YELLOW}Для полной пересборки используйте:${NC}"
echo -e "${YELLOW} ./restart_web.sh $HOSTNAME $PORT${NC}"
}
# Запускаем основной процесс
main "$@"