Обновить install.sh

This commit is contained in:
2025-09-22 13:14:44 +03:00
parent e4a2410725
commit 142340739a

View File

@@ -1,6 +1,6 @@
#!/bin/sh
REPO="https://git.ownsrv.ru/yanistyle/podkop/releases/latest"
REPO_API="https://git.ownsrv.ru/api/v1/repos/yanistyle/podkop/releases"
DOWNLOAD_DIR="/tmp/podkop"
COUNT=3
@@ -25,45 +25,44 @@ main() {
msg "Installed podkop..."
fi
if command -v curl &> /dev/null; then
check_response=$(curl -s "https://git.ownsrv.ru/yanistyle/podkop/releases/latest/")
if echo "$check_response" | grep -q 'API rate limit '; then
msg "You've reached rate limit from GitHub. Repeat in five minutes."
# --- Получаем последний релиз из Gitea ---
LATEST_TAG=$(curl -s "$REPO_API" | jq -r '.[0].tag_name')
if [ -z "$LATEST_TAG" ] || [ "$LATEST_TAG" = "null" ]; then
msg "Не удалось получить последний релиз"
exit 1
fi
fi
msg "Последний релиз: $LATEST_TAG"
# --- Получаем список всех assets ---
ASSETS=$(curl -s "$REPO_API" | jq -r '.[0].assets[].name')
download_success=0
while read -r url; do
filename=$(basename "$url")
for filename in $ASSETS; do
filepath="$DOWNLOAD_DIR/$filename"
attempt=0
while [ $attempt -lt $COUNT ]; do
msg "Download $filename (count $((attempt+1)))..."
if wget -q -O "$filepath" "$url"; then
wget -q -O "$filepath" "https://git.ownsrv.ru/yanistyle/podkop/releases/download/$LATEST_TAG/$filename"
if [ -s "$filepath" ]; then
msg "$filename successfully downloaded"
download_success=1
break
fi
fi
msg "Download error $filename. Retry..."
rm -f "$filepath"
attempt=$((attempt+1))
done
if [ $attempt -eq $COUNT ]; then
msg "Failed to download $filename after $COUNT attempts"
fi
done < <(wget -qO- "$REPO" | grep -o 'https://[^"[:space:]]*\.ipk')
done
if [ $download_success -eq 0 ]; then
msg "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
@@ -103,24 +102,19 @@ main() {
find "$DOWNLOAD_DIR" -type f -name '*podkop*' -exec rm {} \;
}
# --- Проверка системы ---
check_system() {
# Get router model
MODEL=$(cat /tmp/sysinfo/model)
msg "Router model: $MODEL"
# Check OpenWrt version
openwrt_version=$(cat /etc/openwrt_release | grep DISTRIB_RELEASE | cut -d"'" -f2 | cut -d'.' -f1)
if [ "$openwrt_version" = "23" ]; then
msg "OpenWrt 23.05 не поддерживается начиная с podkop 0.5.0"
msg "Для OpenWrt 23.05 используйте podkop версии 0.4.11 или устанавливайте зависимости и podkop вручную"
msg "Подробности: https://podkop.net/docs/install/#%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%bd%d0%b0-2305"
exit 1
fi
# Check available space
AVAILABLE_SPACE=$(df /overlay | awk 'NR==2 {print $4}')
REQUIRED_SPACE=15360 # 15MB in KB
REQUIRED_SPACE=15360
if [ "$AVAILABLE_SPACE" -lt "$REQUIRED_SPACE" ]; then
msg "Error: Insufficient space in flash"
msg "Available: $((AVAILABLE_SPACE/1024))MB"
@@ -135,11 +129,9 @@ check_system() {
if opkg list-installed | grep -q https-dns-proxy; then
msg "Сonflicting package detected: https-dns-proxy. Remove?"
while true; do
read -r -p '' DNSPROXY
case $DNSPROXY in
yes|y|Y|yes)
opkg remove --force-depends luci-app-https-dns-proxy https-dns-proxy luci-i18n-https-dns-proxy*
break
@@ -157,10 +149,8 @@ sing_box() {
if ! opkg list-installed | grep -q "^sing-box"; then
return
fi
sing_box_version=$(sing-box version | head -n 1 | awk '{print $3}')
required_version="1.12.4"
if [ "$(echo -e "$sing_box_version\n$required_version" | sort -V | head -n 1)" != "$required_version" ]; then
msg "sing-box version $sing_box_version is older than required $required_version"
msg "Removing old version..."
@@ -169,3 +159,4 @@ sing_box() {
}
main