обавлена автоустановка git и curl в скрипт синхронизации
This commit is contained in:
@@ -1,24 +1,59 @@
|
||||
#!/bin/bash
|
||||
# Замени Tvoi_Login на свой логин в Gitea
|
||||
REPO_URL="https://gitlab.alex2py.ru/Tvoi_Login/server-tools.git"
|
||||
# ==============================================================================
|
||||
# Скрипт: sync_scripts.sh
|
||||
# Описание: Автоматически скачивает или обновляет репозиторий со скриптами.
|
||||
# Сам устанавливает git и curl, если их нет на сервере.
|
||||
# ==============================================================================
|
||||
|
||||
set -e # Останавливаем скрипт, если произойдет критическая ошибка
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
REPO_URL="https://gitlab.alex2py.ru/uristalex/server-tools.git"
|
||||
DEST_DIR="/opt/server-tools"
|
||||
|
||||
echo "Запуск синхронизации скриптов..."
|
||||
echo -e "${GREEN}Запуск синхронизации скриптов...${NC}"
|
||||
|
||||
if ! command -v git &> /dev/null; then
|
||||
echo "Ошибка: Git не установлен."
|
||||
# Функция для установки программ в зависимости от версии Linux
|
||||
install_dependencies() {
|
||||
echo -e "${YELLOW}Отсутствуют нужные программы. Начинаю автоматическую установку...${NC}"
|
||||
# Проверяем наличие apt (Ubuntu/Debian)
|
||||
if command -v apt-get &> /dev/null; then
|
||||
apt-get update -qq
|
||||
apt-get install -y git curl
|
||||
# Проверяем наличие dnf (Новые CentOS/Fedora)
|
||||
elif command -v dnf &> /dev/null; then
|
||||
dnf install -y git curl
|
||||
# Проверяем наличие yum (Старые CentOS/RedHat)
|
||||
elif command -v yum &> /dev/null; then
|
||||
yum install -y git curl
|
||||
else
|
||||
echo -e "${YELLOW}Ошибка: Не удалось определить пакетный менеджер. Установите git вручную.${NC}"
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${GREEN}Программы успешно установлены!${NC}"
|
||||
}
|
||||
|
||||
# Проверяем, установлены ли git и curl. Если нет — вызываем нашу функцию.
|
||||
if ! command -v git &> /dev/null || ! command -v curl &> /dev/null; then
|
||||
install_dependencies
|
||||
fi
|
||||
|
||||
# Основная логика: клонирование или обновление репозитория
|
||||
if [ ! -d "$DEST_DIR" ]; then
|
||||
echo "Клонирую репозиторий..."
|
||||
echo "Папка не найдена. Выполняю первоначальное клонирование..."
|
||||
git clone "$REPO_URL" "$DEST_DIR"
|
||||
else
|
||||
echo "Обновляю репозиторий..."
|
||||
echo "Папка существует. Обновляю до последней версии..."
|
||||
cd "$DEST_DIR" || exit
|
||||
|
||||
# Отменяем любые случайные изменения на сервере и скачиваем свежее из Gitea
|
||||
git reset --hard HEAD
|
||||
git pull origin main
|
||||
fi
|
||||
|
||||
# Выдаем права на выполнение всем скачанным bash скриптам
|
||||
find "$DEST_DIR/bash" -type f -name "*.sh" -exec chmod +x {} \;
|
||||
echo "Готово!"
|
||||
|
||||
echo -e "${GREEN}Синхронизация успешно завершена!${NC}"
|
||||
Reference in New Issue
Block a user