From 653887b94acd8dd5d70dcf26d5e7897a9969e540 Mon Sep 17 00:00:00 2001 From: bolvan Date: Tue, 7 May 2019 13:20:31 +0300 Subject: [PATCH] install_easy : ask MODE and GETLIST --- docs/https.txt | 2 +- docs/readme.txt | 6 ++-- init.d/sysv/zapret | 2 +- install_easy.sh | 85 ++++++++++++++++++++++++++++++++++++++++------ uninstall_easy.sh | 16 ++++----- 5 files changed, 87 insertions(+), 24 deletions(-) diff --git a/docs/https.txt b/docs/https.txt index bff1e2a..45471b6 100644 --- a/docs/https.txt +++ b/docs/https.txt @@ -78,7 +78,7 @@ start_service() { * Завертывание соединений через iptables ---- /etc/firewall.user ----- +--- /etc/firewall.user ----- SOXIFIER_PORT=1099 ipt() diff --git a/docs/readme.txt b/docs/readme.txt index 779737f..04a3d0b 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -470,8 +470,7 @@ tpws без ipset использует всего лишь DNAT, который ---------------------------- Работает только если у вас на роутере достаточно много места. -Схема примерно такая же, как и на десктопе. Помещаем на роутер /opt/zapret, -выполняем раздел "Выбор параметров", запускаем install_easy.sh +Схема примерно такая же, как и на десктопе. Помещаем на роутер /opt/zapret, запускаем install_easy.sh Если места достаточно, можно прямо на роутер установить git и скачать с github : @@ -494,7 +493,8 @@ binaries/<ваша архитектура>/{tpws,nfqws,ip2net,mdig} Если вы закачаете zapret не в /opt/zapret, а, например, в /tmp, и запустите install_easy.sh оттуда, то инсталятор сам скопирует только необходимый минимум в /opt/zapret. - + +Для более гибкой настройки перед запуском инсталятора следует выполнить раздел "Выбор параметров". Другие прошивки --------------- diff --git a/init.d/sysv/zapret b/init.d/sysv/zapret index fe42c09..17d8d3f 100755 --- a/init.d/sysv/zapret +++ b/init.d/sysv/zapret @@ -118,7 +118,7 @@ run_daemon() PID=$(jobs -p %$JOBCT) if [ -n "$PID" ]; then echo $PID >$PIDFILE - let JOBCT=$JOBCT+1 + JOBCT=`expr $JOBCT + 1` else echo could not start daemon $1 : $2 $3 fi diff --git a/install_easy.sh b/install_easy.sh index 6e15c4c..0de1234 100755 --- a/install_easy.sh +++ b/install_easy.sh @@ -81,6 +81,10 @@ call_install_bin() exitp 8 } } +get_bin_arch() +{ + call_install_bin getarch +} install_binaries() { @@ -89,11 +93,68 @@ install_binaries() call_install_bin } -get_bin_arch() +ask_list() { - call_install_bin getarch + # $1 - mode var + # $2 - space separated value list + eval M_DEFAULT="\$$1" + M="" + + n=1 + for m in $2; do + echo $n : $m + n=`expr $n + 1` + done + echo -n "your choice (default : $M_DEFAULT) : " + read m + [ -n "$m" ] && M=$(echo $2 | cut -d ' ' -f$m 2>/dev/null) + [ -z "$M" ] && M=$M_DEFAULT + echo selected : $M + eval $1=$M + [ "$M" != "$M_DEFAULT" ] } +write_config_var() +{ + # $1 - mode var + eval M="\$$1" + + if [ -n "$M" ]; then + sed -ri "s/^#?$1=.*$/$1=$M/" $EXEDIR/config + else + # write with comment at the beginning + sed -ri "s/^#?$1=.*$/#$1=$M/" $EXEDIR/config + fi +} +select_mode() +{ + echo select MODE : + ask_list MODE "tpws_ipset tpws_ipset_https tpws_all tpws_all_https tpws_hostlist nfqws_ipset nfqws_ipset_https nfqws_all nfqws_all_https ipset" && write_config_var MODE +} +select_getlist() +{ + if [ "${MODE%hostlist*}" != "$MODE" ] || [ "${MODE%ipset*}" != "$MODE" ]; then + echo -n "do you want to auto download ip/host list (Y/N) ? " + read A + if [ "$A" != 'N' ] && [ "$A" != 'n' ]; then + if [ "${MODE%hostlist*}" != "$MODE" ] ; then + GETLISTS="get_hostlist.sh" + else + GETLISTS="get_user.sh get_antizapret.sh get_combined.sh get_reestr.sh" + fi + ask_list GETLIST "$GETLISTS" && write_config_var GETLIST + return + fi + fi + GETLIST="" + write_config_var GETLIST +} + +ask_config() +{ + select_mode + select_getlist +} copy_all() { @@ -295,8 +356,9 @@ install_systemd() check_location copy_all check_preprequisites_linux - service_stop_systemd + service_stop_systemd install_binaries + ask_config install_sysv_init register_sysv_init_systemd download_list @@ -355,14 +417,14 @@ openwrt_fw_section_find() i=0 while true do - path=$(uci -q get firewall.@include[$i].path) - [ -n "$path" ] || break - [ "$path" == "$OPENWRT_FW_INCLUDE" ] && { - echo $i - true - return - } - let i=i+1 + path=$(uci -q get firewall.@include[$i].path) + [ -n "$path" ] || break + [ "$path" == "$OPENWRT_FW_INCLUDE" ] && { + echo $i + true + return + } + i=`expr $i + 1` done false return @@ -458,6 +520,7 @@ install_openwrt() check_location copy_minimal check_preprequisites_openwrt install_binaries + ask_config install_sysv_init register_sysv_init download_list diff --git a/uninstall_easy.sh b/uninstall_easy.sh index 17322a0..d044751 100755 --- a/uninstall_easy.sh +++ b/uninstall_easy.sh @@ -128,14 +128,14 @@ openwrt_fw_section_find() i=0 while true do - path=$(uci -q get firewall.@include[$i].path) - [ -n "$path" ] || break - [ "$path" == "$OPENWRT_FW_INCLUDE" ] && { - echo $i - true - return - } - let i=i+1 + path=$(uci -q get firewall.@include[$i].path) + [ -n "$path" ] || break + [ "$path" == "$OPENWRT_FW_INCLUDE" ] && { + echo $i + true + return + } + i=`expr $i + 1` done false return