diff --git a/scripts/install_local.sh b/scripts/install_local.sh new file mode 100755 index 0000000..0900457 --- /dev/null +++ b/scripts/install_local.sh @@ -0,0 +1,113 @@ +#!/bin/bash + +# Color definitions +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +CYAN='\033[0;36m' +NC='\033[0m' # No Color + +# Logo +print_logo() { + echo -e "${CYAN}" + cat << "EOF" + ██████╗██╗ ██╗██████╗ ███████╗ ██████╗ ██████╗ ██████╗ ██████╗ ██████╗ + ██╔════╝██║ ██║██╔══██╗██╔════╝██╔═══██╗██╔══██╗ ██╔══██╗██╔══██╗██╔═══██╗ + ██║ ██║ ██║██████╔╝███████╗██║ ██║██████╔╝ ██████╔╝██████╔╝██║ ██║ + ██║ ██║ ██║██╔══██╗╚════██║██║ ██║██╔══██╗ ██╔═══╝ ██╔══██╗██║ ██║ + ╚██████╗╚██████╔╝██║ ██║███████║╚██████╔╝██║ ██║ ██║ ██║ ██║╚██████╔╝ + ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ +EOF + echo -e "${NC}" +} + +# Get script directory +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PROJECT_DIR="$( cd "${SCRIPT_DIR}/.." && pwd )" + +# Check if Python is installed +check_python() { + echo -e "${CYAN}ℹ️ Проверка установки Python...${NC}" + + if command -v python3 &> /dev/null; then + PYTHON_CMD="python3" + PYTHON_VERSION=$(python3 --version 2>&1 | awk '{print $2}') + echo -e "${GREEN}✅ Найден Python: ${PYTHON_VERSION}${NC}" + return 0 + elif command -v python &> /dev/null; then + PYTHON_CMD="python" + PYTHON_VERSION=$(python --version 2>&1 | awk '{print $2}') + echo -e "${GREEN}✅ Найден Python: ${PYTHON_VERSION}${NC}" + return 0 + else + echo -e "${RED}❌ Python не установлен${NC}" + echo -e "${YELLOW}Пожалуйста, установите Python 3.8 или выше${NC}" + exit 1 + fi +} + +# Check and install dependencies +check_dependencies() { + echo -e "${CYAN}ℹ️ Проверка зависимостей...${NC}" + + if [ ! -f "${PROJECT_DIR}/requirements.txt" ]; then + echo -e "${RED}❌ Файл requirements.txt не найден${NC}" + exit 1 + fi + + # Check if virtual environment exists + if [ ! -d "${PROJECT_DIR}/venv" ]; then + echo -e "${YELLOW}⚠️ Виртуальное окружение не найдено. Создание...${NC}" + $PYTHON_CMD -m venv "${PROJECT_DIR}/venv" + echo -e "${GREEN}✅ Виртуальное окружение создано${NC}" + fi + + # Activate virtual environment + source "${PROJECT_DIR}/venv/bin/activate" + + # Install/update dependencies + echo -e "${CYAN}ℹ️ Установка зависимостей...${NC}" + pip install -q --upgrade pip + pip install -q -r "${PROJECT_DIR}/requirements.txt" + + if [ $? -eq 0 ]; then + echo -e "${GREEN}✅ Все зависимости установлены${NC}" + else + echo -e "${RED}❌ Ошибка при установке зависимостей${NC}" + exit 1 + fi +} + +# Run the main script +run_script() { + echo -e "${CYAN}ℹ️ Запуск Cursor Free VIP...${NC}" + + # Check if running with sudo on Linux + if [ "$(uname)" == "Linux" ] && [ "$EUID" -ne 0 ]; then + echo -e "${YELLOW}⚠️ Рекомендуется запускать с правами администратора${NC}" + echo -e "${CYAN}ℹ️ Попытка запуска с sudo...${NC}" + sudo "${PROJECT_DIR}/venv/bin/python" "${PROJECT_DIR}/main.py" + else + "${PROJECT_DIR}/venv/bin/python" "${PROJECT_DIR}/main.py" + fi +} + +# Main program +main() { + print_logo + + # Check if we're in the right directory + if [ ! -f "${PROJECT_DIR}/main.py" ]; then + echo -e "${RED}❌ main.py не найден в ${PROJECT_DIR}${NC}" + echo -e "${YELLOW}Убедитесь, что скрипт запущен из директории проекта${NC}" + exit 1 + fi + + check_python + check_dependencies + run_script +} + +# Run main program +main