Files
tg_tinder_bot/build-fix.sh
2025-09-18 16:47:07 +09:00

71 lines
3.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# build-fix.sh - Скрипт для исправления проблем сборки в Docker
# Цвета для вывода
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${BLUE}==================================================${NC}"
echo -e "${BLUE} Проверка и исправление проблем сборки ${NC}"
echo -e "${BLUE}==================================================${NC}"
# Проверяем наличие Dockerfile
if [ ! -f Dockerfile ]; then
echo -e "${RED}ОШИБКА: Dockerfile не найден в текущей директории!${NC}"
exit 1
fi
# Проверяем команду сборки в package.json и Dockerfile
echo -e "${YELLOW}Проверка конфигурации сборки...${NC}"
# Проверка команды сборки в Dockerfile
if grep -q "RUN npm run build" Dockerfile && ! grep -q "RUN npm run build:linux" Dockerfile; then
echo -e "${YELLOW}Найдена проблема: Dockerfile использует 'npm run build', что не работает в контейнере Linux${NC}"
echo -e "${BLUE}Исправление: заменяем на 'npm run build:linux'...${NC}"
# Создаем резервную копию
cp Dockerfile Dockerfile.bak
# Заменяем команду
sed -i "s/RUN npm run build/RUN npm run build:linux/g" Dockerfile
echo -e "${GREEN}✅ Dockerfile обновлен. Резервная копия сохранена как Dockerfile.bak${NC}"
else
echo -e "${GREEN}✅ Dockerfile уже использует корректную команду сборки${NC}"
fi
# Проверка команды сборки в package.json
if [ -f package.json ]; then
if grep -q "\"build:linux\":" package.json; then
echo -e "${GREEN}В package.json уже определена команда build:linux${NC}"
else
echo -e "${YELLOW}В package.json отсутствует команда build:linux${NC}"
echo -e "${BLUE}Добавляем команду build:linux...${NC}"
# Создаем резервную копию
cp package.json package.json.bak
# Получаем текущую команду build
build_cmd=$(grep -o '"build": "[^"]*"' package.json | sed 's/"build": "\(.*\)"/\1/')
# Создаем версию для Linux, заменяя xcopy на cp -R
linux_build_cmd=$(echo "$build_cmd" | sed 's/xcopy \/E \/I/cp -R/g' | sed 's/\\\\/\//g')
# Добавляем команду build:linux, если она не существует
if [[ "$linux_build_cmd" != "$build_cmd" ]]; then
sed -i "/\"build\":/a \ \"build:linux\": \"${linux_build_cmd}\"," package.json
echo -e "${GREEN}✅ Команда build:linux добавлена в package.json${NC}"
fi
fi
else
echo -e "${RED}ПРЕДУПРЕЖДЕНИЕ: package.json не найден в текущей директории!${NC}"
fi
echo -e "${BLUE}==================================================${NC}"
echo -e "${GREEN}Проверка и исправление завершены!${NC}"
echo -e "${BLUE}==================================================${NC}"
echo -e "${YELLOW}Для применения изменений выполните: docker-compose build${NC}"