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

133 lines
4.2 KiB
Bash
Raw Normal View History

2025-07-09 17:26:47 +03:00
#!/bin/bash
detect_init() {
GET_LIST_PREFIX=/ipset/get_
SYSTEMD_DIR=/lib/systemd
[ -d "$SYSTEMD_DIR" ] || SYSTEMD_DIR=/usr/lib/systemd
[ -d "$SYSTEMD_DIR" ] && SYSTEMD_SYSTEM_DIR="$SYSTEMD_DIR/system"
INIT_SCRIPT=/etc/init.d/zapret
if [ -d /run/systemd/system ]; then
INIT_SYSTEM="systemd"
elif [ $SYSTEM == openwrt ]; then
INIT_SYSTEM="procd"
2025-07-14 14:56:36 +03:00
elif command -v openrc >/dev/null 2>&1; then
2025-07-09 17:26:47 +03:00
INIT_SYSTEM="openrc"
elif command -v runit >/dev/null 2>&1; then
INIT_SYSTEM="runit"
[ -f /etc/os-release ] && . /etc/os-release
if [ $ID = artix ]; then
INIT_SYSTEM="runit-artix"
fi
elif [ -x /sbin/init ] && /sbin/init --version 2>&1 | grep -qi "sysv init"; then
INIT_SYSTEM="sysvinit"
else
error_exit "Не удалось определить init."
fi
}
check_zapret_exist() {
case "$INIT_SYSTEM" in
systemd)
if [ -f /etc/systemd/system/timers.target.wants/zapret-list-update.timer ]; then
service_exists=true
else
service_exists=false
fi
;;
procd)
if [ -f /etc/init.d/zapret ]; then
service_exists=true
else
service_exists=false
fi
;;
runit)
ls /var/service | grep -q "zapret" && service_exists=true || service_exists=false
;;
runit-artix)
ls /run/runit/service | grep -q "zapret" && service_exists=true || service_exists=false
;;
openrc)
rc-service -l | grep -q "zapret" && service_exists=true || service_exists=false
;;
sysvinit)
[ -f /etc/init.d/zapret ] && service_exists=true || service_exists=false
;;
*)
ZAPRET_EXIST=false
return
;;
esac
if [ -d /opt/zapret ]; then
dir_exists=true
[ -d /opt/zapret/binaries ] && binaries_exists=true || binaries_exists=false
else
dir_exists=false
binaries_exists=false
fi
if [ "$service_exists" = true ] && [ "$dir_exists" = true ] && [ "$binaries_exists" = true ]; then
ZAPRET_EXIST=true
else
ZAPRET_EXIST=false
fi
}
check_zapret_status() {
case "$INIT_SYSTEM" in
systemd)
ZAPRET_ACTIVE=$(systemctl show -p ActiveState zapret | cut -d= -f2 || true)
ZAPRET_ENABLED=$(systemctl is-enabled zapret 2>/dev/null || echo "false")
ZAPRET_SUBSTATE=$(systemctl show -p SubState zapret | cut -d= -f2)
if [[ "$ZAPRET_ACTIVE" == "active" && "$ZAPRET_SUBSTATE" == "running" ]]; then
ZAPRET_ACTIVE=true
else
ZAPRET_ACTIVE=false
fi
if [[ "$ZAPRET_ENABLED" == "enabled" ]]; then
ZAPRET_ENABLED=true
else
ZAPRET_ENABLED=false
fi
if [[ "$ZAPRET_ENABLED" == "not-found" ]]; then
ZAPRET_ENABLED=false
fi
;;
openrc)
rc-service zapret status >/dev/null 2>&1 && ZAPRET_ACTIVE=true || ZAPRET_ACTIVE=false
rc-update show | grep -q zapret && ZAPRET_ENABLED=true || ZAPRET_ENABLED=false
;;
procd)
if /etc/init.d/zapret status | grep -q "running"; then
ZAPRET_ACTIVE=true
else
ZAPRET_ACTIVE=false
fi
if ls /etc/rc.d/ | grep -q zapret >/dev/null 2>&1; then
ZAPRET_ENABLED=true
else
ZAPRET_ENABLED=false
fi
;;
runit)
sv status zapret | grep -q "run" && ZAPRET_ACTIVE=true || ZAPRET_ACTIVE=false
ls /var/service | grep -q "zapret" && ZAPRET_ENABLED=true || ZAPRET_ENABLED=false
;;
runit-artix)
sv status zapret | grep -q "run" && ZAPRET_ACTIVE=true || ZAPRET_ACTIVE=false
ls /run/runit/service | grep -q "zapret" && ZAPRET_ENABLED=true || ZAPRET_ENABLED=false
;;
sysvinit)
service zapret status >/dev/null 2>&1 && ZAPRET_ACTIVE=true || ZAPRET_ACTIVE=false
;;
esac
2025-07-14 14:56:36 +03:00
}