Files
zapret.installer-Snowy-Fluffy/zapret-control.sh
Snowy_Fluffy 869d9e7396 fixed bag
2025-03-20 04:15:11 +03:00

119 lines
4.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
set -e
if [[ $EUID -ne 0 ]]; then
exec sudo "$0" "$@"
fi
check_zapret_status() {
systemctl is-active --quiet zapret && ZAPRET_ACTIVE=true || ZAPRET_ACTIVE=false
systemctl is-enabled --quiet zapret && ZAPRET_ENABLED=true || ZAPRET_ENABLED=false
}
main_menu() {
while true; do
clear
check_zapret_status
echo "===== Меню управления Запретом ====="
if [[ $ZAPRET_ACTIVE == true ]]; then echo "!Запрет запущен!"; fi
if [[ $ZAPRET_ACTIVE == false ]]; then echo "!Запрет выключен!"; fi
if [[ -d /opt/zapret ]]; then
echo "1) Проверить на обновления"
echo "2) Сменить конфигурацию"
echo "3) Перезапустить Запрет"
echo "4) Посмотреть статус Запрета"
if [[ $ZAPRET_ENABLED == false ]]; then echo "5) Добавить в автозагрузку"; fi
if [[ $ZAPRET_ACTIVE == false ]]; then echo "6) Включить Запрет"; fi
if [[ $ZAPRET_ENABLED == true ]]; then echo "7) Убрать из автозагрузки"; fi
if [[ $ZAPRET_ACTIVE == true ]]; then echo "8) Выключить Запрет"; fi
echo "9) Удалить Запрет"
echo "10) Выйти"
read -p "Выберите действие: " CHOICE
case "$CHOICE" in
1) update_zapret;;
2) configure_zapret;;
3) systemctl restart zapret;;
4) systemctl status zapret; read -p "Нажмите Enter для продолжения...";;
5) systemctl enable zapret;;
6) systemctl start zapret;;
7) systemctl disable zapret;;
8) systemctl stop zapret;;
9) uninstall_zapret;;
10) exit 0;;
*) echo "Неверный ввод!"; sleep 2;;
esac
else
echo "1) Установить Запрет"
echo "2) Выйти"
read -p "Выберите действие: " CHOICE
case "$CHOICE" in
1) install_zapret; main_menu;;
2) exit 0;;
*) echo "Неверный ввод!"; sleep 2;;
esac
fi
done
}
install_zapret() {
git clone https://github.com/bol-van/zapret /opt/zapret
git clone https://github.com/Snowy-Fluffy/zapret.cfgs /opt/zapret/zapret.cfgs
cp -r /opt/zapret/zapret.cfgs/binaries/binaries /opt/zapret/binaries/
# Бинарники скомпилированные чтобы избежать лишних проблем у новичков, если боишься что с ними что то не так, сотри эту строчку и запусти скрипт еще раз, зависимости для компиляции устанавливаются
cd /opt/zapret
yes "" | ./install_easy.sh
configure_zapret
}
update_zapret() {
if [[ -d /opt/zapret ]]; then
cd /opt/zapret && git pull
fi
if [[ -d /opt/zapret/zapret.cfgs ]]; then
cd /opt/zapret/zapret.cfgs && git pull
fi
systemctl restart zapret
}
# Настройка конфигурации
configure_zapret() {
if [[ ! -d /opt/zapret/zapret.cfgs ]]; then
git clone https://github.com/Snowy-Fluffy/zapret.cfgs /opt/zapret/zapret.cfgs
fi
cp /opt/zapret/zapret.cfgs/lists/* /opt/zapret/ipset/
cp /opt/zapret/zapret.cfgs/binaries/* /opt/zapret/files/fake/
echo "Выберите конфигурацию:"
select CONF in /opt/zapret/zapret.cfgs/configurations/*; do
rm -f /opt/zapret/config
cp "$CONF" /opt/zapret/config
break
done
# Проверка firewall
if grep -q "nftables" /proc/modules; then
sed -i '11s/.*/FWTYPE=nftables/' /opt/zapret/config
fi
systemctl restart zapret
}
uninstall_zapret() {
if [[ -f /opt/zapret/uninstall_easy.sh ]]; then
cd /opt/zapret
yes "" | ./uninstall_easy.sh
fi
rm -rf /opt/zapret
}
# Запуск главного меню
main_menu