diff --git a/README.md b/README.md index 7809f4f..d7e979f 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,7 @@ Luci: Services/podkop - [ ] Валидации предустановленных значений. Если прописаны другие, то вывод в лог о неизвестной переменной и продолжение работы - [ ] Добавление в список доменов домены первого уровня (LuCI) - [ ] Проверка, что версия в makefile совпадает с тегом +- [ ] Don't touch my DHCP! Приоритет 2 - [x] Списки доменов и подсетей с роутера diff --git a/install.sh b/install.sh index 119bade..f9d5855 100755 --- a/install.sh +++ b/install.sh @@ -43,30 +43,36 @@ main() { add_tunnel fi - wget -qO- "$REPO" | grep -o 'https://[^"[:space:]]*\.ipk' | while read -r url; do + download_success=0 + while read -r url; do filename=$(basename "$url") filepath="$DOWNLOAD_DIR/$filename" - + attempt=0 while [ $attempt -lt $COUNT ]; do - if [ -f "$filepath" ] && [ -s "$filepath" ]; then - echo "$filename has already been uploaded" - break - fi - echo "Download $filename (count $((attempt+1)))..." - wget -q -O "$filepath" "$url" - - if [ -s "$filepath" ]; then - echo "$filename successfully downloaded" - else - echo "Download error $filename. Retry..." - rm -f "$filepath" + if wget -q -O "$filepath" "$url"; then + if [ -s "$filepath" ]; then + echo "$filename successfully downloaded" + download_success=1 + break + fi fi + echo "Download error $filename. Retry..." + rm -f "$filepath" attempt=$((attempt+1)) done - done - + + if [ $attempt -eq $COUNT ]; then + echo "Failed to download $filename after $COUNT attempts" + fi + done < <(wget -qO- "$REPO" | grep -o 'https://[^"[:space:]]*\.ipk') + + if [ $download_success -eq 0 ]; then + echo "No packages were downloaded successfully" + exit 1 + fi + for pkg in podkop luci-app-podkop; do file=$(ls "$DOWNLOAD_DIR" | grep "^$pkg" | head -n 1) if [ -n "$file" ]; then @@ -96,8 +102,7 @@ main() { done fi - - rm -f $DOWNLOAD_DIR/podkop*.ipk $DOWNLOAD_DIR/luci-app-podkop*.ipk $DOWNLOAD_DIR/luci-i18n-podkop-ru*.ipk + find "$DOWNLOAD_DIR" -type f -name '*podkop*' -exec rm {} \; if [ "$IS_SHOULD_RESTART_NETWORK" ]; then printf "\033[32;1mRestart network\033[0m\n" @@ -429,4 +434,4 @@ sing_box() { fi } -main \ No newline at end of file +main diff --git a/luci-app-podkop/Makefile b/luci-app-podkop/Makefile index 8fb1073..3a05355 100644 --- a/luci-app-podkop/Makefile +++ b/luci-app-podkop/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-podkop -PKG_VERSION:=0.3.9 +PKG_VERSION:=0.3.10 PKG_RELEASE:=1 LUCI_TITLE:=LuCI podkop app diff --git a/podkop/Makefile b/podkop/Makefile index 7b60fae..eb8a91d 100644 --- a/podkop/Makefile +++ b/podkop/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=podkop -PKG_VERSION:=0.3.9 +PKG_VERSION:=0.3.10 PKG_RELEASE:=1 PKG_MAINTAINER:=ITDog @@ -33,6 +33,8 @@ define Package/podkop/prerm grep -q "105 podkop" /etc/iproute2/rt_tables && sed -i "/105 podkop/d" /etc/iproute2/rt_tables +/etc/init.d/podkop stop + exit 0 endef diff --git a/podkop/files/etc/init.d/podkop b/podkop/files/etc/init.d/podkop index a9a99b0..32da8a8 100755 --- a/podkop/files/etc/init.d/podkop +++ b/podkop/files/etc/init.d/podkop @@ -76,7 +76,7 @@ stop_service() { remove_cron_job dnsmasq_rm - rm -rf /tmp/podkop/* + rm -rf /tmp/podkop/*.lst log "Flush nft" if nft list table inet PodkopTable >/dev/null 2>&1; then