я его делал для себя, но может кому-то пригодится. на aarch роутерах он точно работает, может и на других заработает, но тут нужны отзывы. для его работы предполагается уже один раз установленный на роутер запрет. вот как он выглядит
#!/bin/sh
unset latest_version_on_github
unset current_version_on_router
my_cpu_architecture=$(uname --machine)
current_version_on_router=$(/opt/zapret/binaries/$my_cpu_architecture/nfqws | grep version | awk 'NR==1{print $3}' | sed 's/v//g')
latest_version_on_github=$(curl -s https://api.github.com/repos/bol-van/zapret/releases/latest | jq -r '.name' | sed 's/v//g')
function podgotovka()
{
if [[ -z "$(opkg list-installed | grep jq)" ]]
then
opkg update
opkg install jq
else
echo "jq is already installed"
fi
}
function debug_whats_in_variables()
{
echo $latest_version_on_github
echo $current_version_on_router
}
function download_and_install_freshest_zapret()
{
service zapret stop
mkdir -p /opt/zapret
cd /opt
wget $(curl -s https://api.github.com/repos/bol-van/zapret/releases/latest | jq -r '.assets[] | select(.name | contains ("openwrt")) | .browser_download_url') -O zapret-latest.tar.gz
tar -xvzf zapret-latest.tar.gz
rm -v zapret-latest.tar.gz
cp -vr $(find -maxdepth 1 -name zapret-v* -type d)/* zapret/
rm -rfv $(find -maxdepth 1 -name zapret-v* -type d)
service zapret restart
}
podgotovka
#debug_whats_in_variables
#uncomment the string above if something is wrong to check if variables values are actually numbers
if [[ $latest_version_on_github -gt $current_version_on_router ]]
then
download_and_install_freshest_zapret
else
echo "zapret is fresh enough"
fi
после чего скрипт можно засунуть в кронтаб (вот удобный адрес) и запускать раз в несколько часов или раз в сутки например. я его проверял на баше и на ash, других терминалов у меня нет так что пишите отзывы по портабельности скрипта если он вам будет полезен.
конечно можно и руками всё это обновлять но зачем если скрипт будет делать это за тебя.