Files
zapret.installer-Snowy-Fluffy/installer.sh

88 lines
3.3 KiB
Bash
Raw Normal View History

#!/bin/sh
2025-03-20 16:21:00 +03:00
set -e
2025-03-26 15:24:30 +03:00
install_dependencies() {
kernel="$(uname -s)"
2025-03-26 15:24:30 +03:00
if [ "$kernel" = "Linux" ]; then
[ -f /etc/os-release ] && . /etc/os-release || { echo "Не удалось определить ОС"; exit 1; }
2025-07-09 17:26:47 +03:00
SUDO="${SUDO:-}"t
2025-03-26 15:24:30 +03:00
find_package_manager() {
case "$1" in
2025-07-09 17:26:47 +03:00
arch|artix|cachyos|endeavouros|manjaro|garuda) echo "$SUDO pacman -Syu --noconfirm && $SUDO pacman -S --noconfirm git" ;;
debian|ubuntu|mint) echo "$SUDO apt update -y && $SUDO apt install -y git" ;;
2025-07-09 17:26:47 +03:00
fedora|almalinux|rocky) echo "$SUDO dnf check-update -y && $SUDO dnf install -y git" ;;
void) echo "$SUDO xbps-install -S && $SUDO xbps-install -y git" ;;
2025-03-30 21:46:43 +03:00
gentoo) echo "$SUDO emerge --sync --quiet && $SUDO emerge --ask=n dev-vcs/git app-shells/bash" ;;
2025-06-16 19:26:56 +03:00
opensuse) echo "$SUDO zypper refresh && $SUDO zypper install git" ;;
openwrt) echo "$SUDO opkg update && $SUDO opkg install git git-http bash" ;;
2025-03-30 21:46:43 +03:00
altlinux) echo "$SUDO apt-get update -y && $SUDO apt-get install -y git bash" ;;
2025-07-09 17:26:47 +03:00
alpine) echo "$SUDO apk update && $SUDO apk add git bash" ;;
*) echo "" ;;
2025-03-26 15:39:54 +03:00
esac
}
2025-03-26 15:39:54 +03:00
install_cmd="$(find_package_manager "$ID")"
2025-03-26 15:39:54 +03:00
if [ -z "$install_cmd" ] && [ -n "$ID_LIKE" ]; then
for like in $ID_LIKE; do
install_cmd="$(find_package_manager "$like")" && [ -n "$install_cmd" ] && break
2025-03-26 15:39:54 +03:00
done
fi
if [ -n "$install_cmd" ]; then
eval "$install_cmd"
else
echo "Неизвестная ОС: ${ID:-Неизвестно}"
2025-03-30 21:46:43 +03:00
echo "Установите git и bash самостоятельно."
sleep 2
2025-03-26 15:39:54 +03:00
fi
2025-03-26 15:24:30 +03:00
elif [ "$kernel" = "Darwin" ]; then
echo "macOS не поддерживается на данный момент."
2025-03-26 15:24:30 +03:00
exit 1
else
echo "Неизвестная ОС: $kernel"
2025-03-30 21:46:43 +03:00
echo "Установите git и bash самостоятельно."
sleep 2
2025-03-26 15:24:30 +03:00
fi
}
2025-06-14 14:30:32 +03:00
if [ "$(awk '$2 == "/" {print $4}' /proc/mounts)" = "ro" ]; then
echo "Файловая система только для чтения, не могу продолжать."
exit 1
fi
if [ "$(id -u)" -eq 0 ]; then
SUDO=""
else
2025-03-26 15:29:34 +03:00
if command -v sudo > /dev/null 2>&1; then
SUDO="sudo"
2025-03-26 15:29:34 +03:00
elif command -v doas > /dev/null 2>&1; then
SUDO="doas"
else
2025-03-26 15:24:30 +03:00
echo "Скрипт не может быть выполнен не от имени суперпользователя."
exit 1
fi
fi
2025-03-20 15:58:49 +03:00
2025-03-26 15:29:34 +03:00
if ! command -v git > /dev/null 2>&1; then
install_dependencies
2025-03-26 15:24:30 +03:00
fi
if [ ! -d "/opt/zapret.installer" ]; then
2025-03-26 15:29:34 +03:00
$SUDO git clone https://github.com/Snowy-Fluffy/zapret.installer.git /opt/zapret.installer
2025-03-20 15:58:49 +03:00
else
2025-03-26 15:29:34 +03:00
cd /opt/zapret.installer || exit
if ! $SUDO git pull; then
2025-03-20 15:58:49 +03:00
echo "Ошибка при обновлении. Удаляю репозиторий и клонирую заново..."
2025-03-26 15:29:34 +03:00
$SUDO rm -rf /opt/zapret.installer
$SUDO git clone https://github.com/Snowy-Fluffy/zapret.installer.git /opt/zapret.installer
2025-03-20 15:58:49 +03:00
fi
2025-03-20 04:05:10 +03:00
fi
2025-03-20 18:31:49 +03:00
$SUDO chmod +x /opt/zapret.installer/zapret-control.sh
2025-03-26 15:32:57 +03:00
exec bash /opt/zapret.installer/zapret-control.sh
2025-03-20 04:05:10 +03:00