обавлена автоустановка git и curl в скрипт синхронизации

This commit is contained in:
2026-04-13 23:39:58 +03:00
parent 8affd84963
commit c4a33e3740

View File

@@ -1,24 +1,59 @@
#!/bin/bash #!/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" DEST_DIR="/opt/server-tools"
echo "Запуск синхронизации скриптов..." echo -e "${GREEN}Запуск синхронизации скриптов...${NC}"
if ! command -v git &> /dev/null; then # Функция для установки программ в зависимости от версии Linux
echo "Ошибка: Git не установлен." 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 exit 1
fi
echo -e "${GREEN}Программы успешно установлены!${NC}"
}
# Проверяем, установлены ли git и curl. Если нет — вызываем нашу функцию.
if ! command -v git &> /dev/null || ! command -v curl &> /dev/null; then
install_dependencies
fi fi
# Основная логика: клонирование или обновление репозитория
if [ ! -d "$DEST_DIR" ]; then if [ ! -d "$DEST_DIR" ]; then
echo "Клонирую репозиторий..." echo "Папка не найдена. Выполняю первоначальное клонирование..."
git clone "$REPO_URL" "$DEST_DIR" git clone "$REPO_URL" "$DEST_DIR"
else else
echo "Обновляю репозиторий..." echo "Папка существует. Обновляю до последней версии..."
cd "$DEST_DIR" || exit cd "$DEST_DIR" || exit
# Отменяем любые случайные изменения на сервере и скачиваем свежее из Gitea
git reset --hard HEAD git reset --hard HEAD
git pull origin main git pull origin main
fi fi
# Выдаем права на выполнение всем скачанным bash скриптам
find "$DEST_DIR/bash" -type f -name "*.sh" -exec chmod +x {} \; find "$DEST_DIR/bash" -type f -name "*.sh" -exec chmod +x {} \;
echo "Готово!"
echo -e "${GREEN}Синхронизация успешно завершена!${NC}"