From 9540030579b33fd7f2d3bbf580404dd6e444a35c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=28=D0=A5?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D1=8B=D1=87=D0=AA=29=20=D0=A5=D1=80=D0=B0?= =?UTF-8?q?=D0=BC=D0=BE=D0=B2?= Date: Thu, 29 May 2025 17:48:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5:=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=20=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8=20=D0=B1=D0=B5?= =?UTF-8?q?=D1=80=D1=91=D1=82=20=D0=B1=D0=B8=D0=BD=D0=B0=D1=80=D0=BD=D0=B8?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=B8=D0=B7=20=D1=80=D0=B5=D0=BB=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0,=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- scripts/install.sh | 99 +++++++++++++++++++++------------------------- 2 files changed, 47 insertions(+), 56 deletions(-) diff --git a/README.md b/README.md index 1482ddb..87f514f 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,10 @@ ALR написан на чистом Go и после сборки не имее Установочный скрипт автоматически загрузит и установит соответствующий пакет ALR в вашей системе. Чтобы использовать его, просто выполните следующую команду: ```bash -curl -fsSL plemya-x.ru/alr/install.sh | bash +curl -fsSL https://gitea.plemya-x.ru/Plemya-x/ALR/raw/branch/master/scripts/install.sh | bash ``` -**ВАЖНО**: При этом скрипт будет загружен и запущен с . Пожалуйста, просматривайте любые скрипты, которые вы скачиваете из Интернета (включая этот), прежде чем запускать их. +**ВАЖНО**: При этом скрипт будет загружен и запущен [скрипт](https://gitea.plemya-x.ru/Plemya-x/ALR/src/branch/master/scripts/install.sh). Пожалуйста, просматривайте любые скрипты, которые вы скачиваете из Интернета (включая этот), прежде чем запускать их. ### Сборка из исходного кода diff --git a/scripts/install.sh b/scripts/install.sh index d92b19d..2528408 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -41,10 +41,10 @@ installPkg() { fi case $1 in - pacman) $rootCmd pacman --noconfirm -U ${@:2} ;; - apk) $rootCmd apk add --allow-untrusted ${@:2} ;; - zypper) $rootCmd zypper --no-gpg-checks install ${@:2} ;; - *) $rootCmd $1 install -y ${@:2} ;; + pacman) $rootCmd pacman --noconfirm -U "${@:2}" ;; + apk) $rootCmd apk add --allow-untrusted "${@:2}" ;; + zypper) $rootCmd zypper --no-gpg-checks install "${@:2}" ;; + *) $rootCmd "$1" install -y "${@:2}" ;; esac } @@ -88,60 +88,51 @@ else fi if [ -z "$noPkgMgr" ]; then - info "Получение списка файлов с https://plemya-x.ru/" - pageContent=$(curl -s https://plemya-x.ru/?dir=alr) + info "Получение списка файлов с https://gitea.plemya-x.ru/Plemya-x/ALR/releases" + + # Изменено URL и регулярное выражение для списка файлов + pageContent=$(curl -s https://gitea.plemya-x.ru/Plemya-x/ALR/releases) # Извлечение списка файлов из HTML - fileList=$(echo "$pageContent" | grep -oP '(?<=href=").*?(?=")' | grep -E 'alr-bin-.*.(pkg.tar.zst|rpm|deb)') + fileList=$(echo "$pageContent" | grep -oP '(?<=href=").*?(?=")' | grep -E 'alr-bin.*\.(pkg.tar.zst|rpm|deb)') echo "Полученный список файлов:" echo "$fileList" -if [ "$pkgMgr" == "pacman" ]; then - latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.pkg\.tar\.zst' | sort -V | tail -n 1) -elif [ "$pkgMgr" == "apt" ]; then - latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.amd64\.deb' | sort -V | tail -n 1) -elif [[ "$pkgMgr" == "dnf" || "$pkgMgr" == "yum" || "$pkgMgr" == "zypper" ]]; then - latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.x86_64\.rpm' | grep -v 'alt1' | sort -V | tail -n 1) -elif [ "$pkgMgr" == "apt-get" ]; then - latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*-alt[0-9]+\.x86_64\.rpm' | sort -V | tail -n 1) + + if [ "$pkgMgr" == "pacman" ]; then + latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.pkg\.tar\.zst' | sort -V | tail -n 1) + elif [ "$pkgMgr" == "apt" ]; then + latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.amd64\.deb' | sort -V | tail -n 1) + elif [[ "$pkgMgr" == "dnf" || "$pkgMgr" == "yum" || "$pkgMgr" == "zypper" ]]; then + latestFile=$(printf "%s\n" "${fileList[@]}" | grep -E 'alr-bin-.*\.x86_64\.rpm' | grep -v 'alt[0-9]*' | sort -V | tail -n 1) + elif [ "$pkgMgr" == "apt-get" ]; then + latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*-alt[0-9]+\.x86_64\.rpm' | sort -V | tail -n 1) + else + error "Не поддерживаемый менеджер пакетов для автоматической установки" + fi + + if [ -z "$latestFile" ]; then + error "Не удалось найти соответствующий пакет для $pkgMgr" + fi + + info "Найдена последняя версия ALR: $latestFile" + + fname="$(mktemp -u -p /tmp "alr.XXXXXXXXXX").${pkgFormat}" + + info "Загрузка пакета ALR" + curl -o $fname -L "$latestFile" + + if [ ! -f "$fname" ]; then + error "Ошибка загрузки пакета ALR" + fi + + info "Установка пакета ALR" + installPkg "$pkgMgr" "$fname" + + info "Очистка" + rm "$fname" + + info "Готово!" else -error "Не поддерживаемый менеджер пакетов для автоматической установки" -fi - -if [ -z "$latestFile" ]; then -error "Не удалось найти соответствующий пакет для $pkgMgr" -fi - -info "Найдена последняя версия ALR: $latestFile" - -url="https://plemya-x.ru/$latestFile" -fname="$(mktemp -u -p /tmp "alr.XXXXXXXXXX").${pkgFormat}" - -info "Загрузка пакета ALR" -curl -L $url -o $fname - -if [ ! -f "$fname" ]; then -error "Ошибка загрузки пакета ALR" -fi - -info "Установка пакета ALR" -installPkg $pkgMgr $fname - -info "Очистка" -rm $fname - -info "Готово!" - -else -info "Клонирование репозитория ALR" -git clone https://gitea.plemya-x.ru/xpamych/ALR.git /tmp/alr - -info "Установка ALR" -cd /tmp/alr -sudo make install - -info "Очистка репозитория ALR" -rm -rf /tmp/alr - -info "Все задачи выполнены!" + echo "Не найден поддерживаемый менеджер пакетов. О_о" fi