From e7ceafe014b9a78b938caeb8a2adfd5fe85ee06e Mon Sep 17 00:00:00 2001 From: Snowy-Fluffy Date: Wed, 26 Mar 2025 15:24:30 +0300 Subject: [PATCH] bug fix --- installer.sh | 44 +++++++++++++++++++++++++++++++++++++------- zapret-control.sh | 8 ++++---- 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/installer.sh b/installer.sh index 5adc13b..72901c0 100755 --- a/installer.sh +++ b/installer.sh @@ -2,12 +2,36 @@ set -e -if command -v git > /dev/null 2>&1; then - echo "" -else - echo "Команда git не найдена. Установите пакет git вручную" - exit 1 -fi +install_dependencies() { + kernel="$(uname -s)" + if [ "$kernel" = "Linux" ]; then + . /etc/os-release + + declare -A command_by_ID=( + ["arch"]="pacman -S --noconfirm git" + ["debian"]="DEBIAN_FRONTEND=noninteractive apt install -y git" + ["fedora"]="dnf install -y git" + ["ubuntu"]="DEBIAN_FRONTEND=noninteractive apt install -y git" + ["mint"]="DEBIAN_FRONTEND=noninteractive apt install -y git" + ["void"]="xpbs-install -y git " + ["gentoo"]="emerge --ask=n dev-vcs/git" + ["opensuse"]="zypper install -y git " + ) + + if [[ -v command_by_ID[$ID] ]]; then + eval "${command_by_ID[$ID]}" + elif [[ -v command_by_ID[$ID_LIKE] ]]; then + eval "${command_by_ID[$ID_LIKE]}" + fi + elif [ "$kernel" = "Darwin" ]; then + echo "macOS не поддерживается на данный момент." + exit 1 + else + echo "Неизвестная ОС: ${kernel}" + exit 1 + fi +} + if [ "$(id -u)" -eq 0 ]; then SUDO="" @@ -17,11 +41,17 @@ else elif command -v doas &> /dev/null; then SUDO="doas" else - echo "Скрипт не может быть выполнен не от суперпользователя." + echo "Скрипт не может быть выполнен не от имени суперпользователя." exit 1 fi fi +if command -v git > /dev/null 2>&1; then + echo "" +else + $SUDO install_dependencies +fi + if [ ! -d "/opt/zapret.installer" ]; then cd /opt || exit $SUDO git clone https://github.com/Snowy-Fluffy/zapret.installer.git diff --git a/zapret-control.sh b/zapret-control.sh index 76eee16..c5bf88c 100755 --- a/zapret-control.sh +++ b/zapret-control.sh @@ -219,12 +219,12 @@ install_dependencies() { ["ubuntu"]="DEBIAN_FRONTEND=noninteractive apt install -y make gcc zlib1g-dev wget ipset iptables \ libcap-dev" ["mint"]="DEBIAN_FRONTEND=noninteractive apt install -y make gcc wget zlib1g-dev ipset iptables \ - libcap-dev git libnetfilter-queue-dev" - ["void"]="xpbs-install -y make gcc git zlib libcap wget ipset iptables \ + libcap-dev libnetfilter-queue-dev" + ["void"]="xpbs-install -y make gcc zlib libcap wget ipset iptables \ libnetfilter_queue" - ["gentoo"]="emerge --ask=n sys-libs/zlib dev-vcs/git net-firewall/iptables net-misc/wget net-firewall/ipset sys-libs/libcap \ + ["gentoo"]="emerge --ask=n sys-libs/zlib net-firewall/iptables net-misc/wget net-firewall/ipset sys-libs/libcap \ net-libs/libnetfilter_queue" - ["opensuse"]="zypper install -y make git gcc wget zlib-devel ipset iptables \ + ["opensuse"]="zypper install -y make gcc wget zlib-devel ipset iptables \ libcap-devel libnetfilter_queue-devel" )