diff --git a/install.sh b/install.sh index 119bade..c43c362 100755 --- a/install.sh +++ b/install.sh @@ -43,30 +43,42 @@ 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" - + + if [ -f "$filepath" ] && [ -s "$filepath" ]; then + echo "$filename has already been uploaded" + download_success=1 + continue + fi + 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 +108,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 +440,4 @@ sing_box() { fi } -main \ No newline at end of file +main diff --git a/podkop/files/etc/init.d/podkop b/podkop/files/etc/init.d/podkop index 1b1040f..1a5ad3f 100755 --- a/podkop/files/etc/init.d/podkop +++ b/podkop/files/etc/init.d/podkop @@ -73,7 +73,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 @@ -1608,4 +1608,4 @@ show_config() { show_version() { local version=$(opkg info podkop | grep -m 1 "Version:" | cut -d' ' -f2) echo "$version" -} \ No newline at end of file +}