forked from Muzifs/LGBot
77 lines
2.3 KiB
Bash
Executable File
77 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Скрипт для обновления бота из git-репозитория
|
|
# Запускается на сервере в директории /opt/LGBot
|
|
|
|
echo "🔄 Обновление LGBot..."
|
|
echo "================================"
|
|
|
|
# Проверяем, находимся ли мы в git-репозитории
|
|
if [ ! -d ".git" ]; then
|
|
echo "❌ Ошибка: это не git-репозиторий"
|
|
exit 1
|
|
fi
|
|
|
|
# Показываем текущую ветку
|
|
CURRENT_BRANCH=$(git branch --show-current)
|
|
echo "📍 Текущая ветка: $CURRENT_BRANCH"
|
|
|
|
# Проверяем наличие изменений
|
|
echo ""
|
|
echo "📊 Статус репозитория:"
|
|
git status --short
|
|
|
|
# Получаем изменения из удаленного репозитория
|
|
echo ""
|
|
echo "📥 Получение изменений из репозитория..."
|
|
git fetch origin
|
|
|
|
# Проверяем, есть ли обновления
|
|
LOCAL=$(git rev-parse HEAD)
|
|
REMOTE=$(git rev-parse origin/$CURRENT_BRANCH)
|
|
|
|
if [ "$LOCAL" = "$REMOTE" ]; then
|
|
echo "✅ Бот уже обновлен до последней версии"
|
|
echo ""
|
|
echo "Последний коммит:"
|
|
git log -1 --pretty=format:"%h - %s (%ar)" --abbrev-commit
|
|
exit 0
|
|
fi
|
|
|
|
# Показываем, какие коммиты будут применены
|
|
echo ""
|
|
echo "📝 Новые коммиты:"
|
|
git log HEAD..origin/$CURRENT_BRANCH --pretty=format:"%h - %s (%ar)" --abbrev-commit
|
|
|
|
# Обновляем код
|
|
echo ""
|
|
echo "⬇️ Применение обновлений..."
|
|
git pull origin $CURRENT_BRANCH
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "❌ Ошибка при обновлении из git"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ Код успешно обновлен"
|
|
|
|
# Перезапускаем бота
|
|
echo ""
|
|
echo "🔄 Перезапуск бота..."
|
|
systemctl restart LGBot.service
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ Бот успешно перезапущен"
|
|
|
|
# Ждем 2 секунды и проверяем статус
|
|
sleep 2
|
|
echo ""
|
|
echo "📊 Статус службы:"
|
|
systemctl status LGBot.service --no-pager -l | head -10
|
|
else
|
|
echo "❌ Ошибка при перезапуске бота"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "🎉 Обновление завершено!" |