Last active
October 28, 2025 20:49
-
-
Save kotsmotritnastul/7aa584b6174e918a70ab47d97a7e744b to your computer and use it in GitHub Desktop.
как обновить zapret одним скриптом
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/sh | |
| unset latest_version_on_github | |
| unset current_version_on_router | |
| main() | |
| { | |
| find_out_what_os_we_work_in | |
| find_out_what_version_is_here | |
| find_out_what_version_is_on_github | |
| if [ "$(compare_version)" -eq 1 ] | |
| then | |
| update_zapret | |
| speed_up_blockcheck | |
| else | |
| dont_update_zapret | |
| fi | |
| } | |
| speed_up_blockcheck() | |
| { | |
| sed -i 's/\[ \"\$SCANLEVEL\" = quick \] && break/break/' /opt/zapret/blockcheck.sh | |
| } | |
| compare_version() | |
| { | |
| echo "$latest_version_on_github" "$current_version_on_router" | awk ' | |
| { | |
| split($1,version_on_github,".") | |
| split($2,version_here,".") | |
| version_on_github_major = version_on_github[1] | |
| version_here_major = version_here[1] | |
| if ( length(version_on_github[2]) == 0 ) | |
| version_on_github_minor = "0" | |
| else | |
| version_on_github_minor = version_on_github[2] | |
| if ( length(version_here[2]) == 0 ) | |
| version_here_minor = "0" | |
| else | |
| version_here_minor = version_here[2] | |
| if ( version_on_github_major > version_here_major ) | |
| print "1" | |
| else if ( version_on_github_minor > version_here_minor ) | |
| print "1" | |
| else | |
| print "0" | |
| } | |
| ' | |
| } | |
| dont_update_zapret() | |
| { | |
| echo "zapret is fresh enough" | |
| } | |
| find_out_what_version_is_on_github() | |
| { | |
| latest_version_on_github=$(curl -s https://api.github.com/repos/bol-van/zapret/releases/latest | awk ' | |
| BEGIN { | |
| FS = "\"" | |
| } | |
| $0 ~ /tag_name/ { | |
| gsub("v","") | |
| print $4 | |
| } | |
| ') | |
| } | |
| find_out_what_version_is_here() | |
| { | |
| current_version_on_router=$(/opt/zapret/nfq/nfqws | awk ' | |
| $0 ~ /version/ { | |
| gsub("v","") | |
| print $3 | |
| exit | |
| } | |
| ') | |
| } | |
| find_out_what_os_we_work_in() | |
| { | |
| os_id=$(awk 'BEGIN {FS = "="} /^ID=/ {gsub("\"",""); print $2}' /etc/os-release) | |
| } | |
| update_zapret() | |
| { | |
| case $os_id in | |
| almalinux|rocky|rhel|fedora|nobara|Deepin|debian|ubuntu|zorin|linuxmint) | |
| pc_download_and_install_freshest_zapret | |
| ;; | |
| openwrt) | |
| openwrt_download_and_install_freshest_zapret | |
| ;; | |
| manjaro) | |
| echo "манжара это кал https://telegra.ph/Manjaro-09-17 я пытался установить манжару в виртуалку чтобы потестировать этот скрипт но манжаровский пакетный менеджер даже в виртуалке чем-то попортил систему и после перезагрузки она не загрузилась. похоже её даже собственные мейнтейнеры не тестируют." | |
| exit 1 | |
| ;; | |
| *) | |
| echo "похоже у вас какой-то обскурный дистр. если так то вы большой любитель пердолиться. перепишите этот скрипт под свой пакетный менеджер или sysvinit или что у вас там." | |
| exit 1 | |
| ;; | |
| esac | |
| } | |
| debug_whats_in_variables() | |
| { | |
| echo "$latest_version_on_github" | |
| echo "$current_version_on_router" | |
| } | |
| openwrt_download_and_install_freshest_zapret() | |
| { | |
| service zapret stop | |
| mkdir -p /opt/zapret | |
| cd /opt || exit | |
| #wget $(curl -s https://api.github.com/repos/bol-van/zapret/releases/latest | jq -r '.assets[] | select(.name | contains ("openwrt")) | .browser_download_url') -O /opt/zapret-latest.tar.gz | |
| wget "$(get_zapret_package_url_for_openwrt)" -O /opt/zapret-latest.tar.gz | |
| tar -xvzf /opt/zapret-latest.tar.gz | |
| rm -v /opt/zapret-latest.tar.gz | |
| cp -vr /opt/zapret-v*/* /opt/zapret/ | |
| rm -rfv zapret-v* | |
| service zapret restart | |
| } | |
| pc_download_and_install_freshest_zapret() | |
| { | |
| sudo systemctl stop zapret | |
| sudo mkdir -p /opt/zapret | |
| cd /opt || exit | |
| #sudo wget $(curl -s https://api.github.com/repos/bol-van/zapret/releases/latest | jq -r '.assets[] | .browser_download_url' | grep zapret-v[0-9\.]*.tar.gz | head -n 1) -O /opt/zapret-latest.tar.gz | |
| sudo wget "$(get_zapret_package_url_for_pc_linux)" -O /opt/zapret-latest.tar.gz | |
| sudo tar -xvzf /opt/zapret-latest.tar.gz | |
| sudo rm -v /opt/zapret-latest.tar.gz | |
| sudo cp -vr /opt/zapret-v*/* /opt/zapret/ | |
| sudo rm -rfv zapret-v* | |
| sudo systemctl restart zapret | |
| } | |
| get_zapret_package_url_for_pc_linux() | |
| { | |
| curl -s https://api.github.com/repos/bol-van/zapret/releases/latest | awk ' | |
| BEGIN { | |
| FS = "\"" | |
| } | |
| $0 !~ /openwrt/ && /tar.gz/ && /browser/ { | |
| print $4 | |
| }' | |
| } | |
| get_zapret_package_url_for_openwrt() | |
| { | |
| curl -s https://api.github.com/repos/bol-van/zapret/releases/latest | awk ' | |
| BEGIN { | |
| FS = "\"" | |
| } | |
| $0 ~ /openwrt/ && /tar.gz/ && /browser/ { | |
| print $4 | |
| }' | |
| } | |
| #debug_whats_in_variables | |
| main "$@" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment