fix: download actual upstream configs and scripts

This commit is contained in:
lingyuzeng
2026-03-01 14:14:54 +08:00
parent eec4aa40b6
commit 19036f2844
5 changed files with 361 additions and 21 deletions

View File

@@ -1,6 +1,121 @@
#!/bin/bash
# Placeholder for Scripts/Packages.sh
# Please download manually from:
# curl -fsSL https://raw.githubusercontent.com/VIKINGYFY/OpenWRT-CI/main/Scripts/Packages.sh -o Scripts/Packages.sh
set -euo pipefail
echo "Packages.sh placeholder - please download the actual script"
#安装和更新软件包
UPDATE_PACKAGE() {
local PKG_NAME=$1
local PKG_REPO=$2
local PKG_BRANCH=$3
local PKG_SPECIAL=${4:-}
local PKG_LIST=("$PKG_NAME" $5) # 第5个参数为自定义名称列表
local REPO_NAME=${PKG_REPO#*/}
echo " "
# 删除本地可能存在的不同名称的软件包
for NAME in "${PKG_LIST[@]}"; do
# 查找匹配的目录
echo "Search directory: $NAME"
local FOUND_DIRS=$(find ../feeds/luci/ ../feeds/packages/ -maxdepth 3 -type d -iname "*$NAME*" 2>/dev/null)
# 删除找到的目录
if [ -n "$FOUND_DIRS" ]; then
while read -r DIR; do
rm -rf "$DIR"
echo "Delete directory: $DIR"
done <<< "$FOUND_DIRS"
else
echo "Not fonud directory: $NAME"
fi
done
# 克隆 GitHub 仓库
git clone --depth=1 --single-branch --branch $PKG_BRANCH "https://github.com/$PKG_REPO.git"
# 处理克隆的仓库
if [[ "$PKG_SPECIAL" == "pkg" ]]; then
find ./$REPO_NAME/*/ -maxdepth 3 -type d -iname "*$PKG_NAME*" -prune -exec cp -rf {} ./ \;
rm -rf ./$REPO_NAME/
elif [[ "$PKG_SPECIAL" == "name" ]]; then
mv -f $REPO_NAME $PKG_NAME
fi
}
# 调用示例
# UPDATE_PACKAGE "OpenAppFilter" "destan19/OpenAppFilter" "master" "" "custom_name1 custom_name2"
# UPDATE_PACKAGE "open-app-filter" "destan19/OpenAppFilter" "master" "" "luci-app-appfilter oaf" 这样会把原有的open-app-filterluci-app-appfilteroaf相关组件删除不会出现coremark错误。
# UPDATE_PACKAGE "包名" "项目地址" "项目分支" "pkg/name可选pkg为从大杂烩中单独提取包名插件name为重命名为包名"
UPDATE_PACKAGE "argon" "sbwml/luci-theme-argon" "openwrt-25.12"
UPDATE_PACKAGE "aurora" "eamonxg/luci-theme-aurora" "master"
UPDATE_PACKAGE "aurora-config" "eamonxg/luci-app-aurora-config" "master"
UPDATE_PACKAGE "kucat" "sirpdboy/luci-theme-kucat" "master"
UPDATE_PACKAGE "kucat-config" "sirpdboy/luci-app-kucat-config" "master"
UPDATE_PACKAGE "homeproxy" "VIKINGYFY/homeproxy" "main"
UPDATE_PACKAGE "momo" "nikkinikki-org/OpenWrt-momo" "main"
UPDATE_PACKAGE "nikki" "nikkinikki-org/OpenWrt-nikki" "main"
UPDATE_PACKAGE "openclash" "vernesong/OpenClash" "dev" "pkg"
UPDATE_PACKAGE "passwall" "Openwrt-Passwall/openwrt-passwall" "main" "pkg"
UPDATE_PACKAGE "passwall2" "Openwrt-Passwall/openwrt-passwall2" "main" "pkg"
UPDATE_PACKAGE "luci-app-tailscale" "asvow/luci-app-tailscale" "main"
UPDATE_PACKAGE "ddns-go" "sirpdboy/luci-app-ddns-go" "main"
UPDATE_PACKAGE "diskman" "lisaac/luci-app-diskman" "master"
UPDATE_PACKAGE "easytier" "EasyTier/luci-app-easytier" "main"
UPDATE_PACKAGE "fancontrol" "rockjake/luci-app-fancontrol" "main"
UPDATE_PACKAGE "gecoosac" "lwb1978/openwrt-gecoosac" "main"
UPDATE_PACKAGE "mosdns" "sbwml/luci-app-mosdns" "v5" "" "v2dat"
UPDATE_PACKAGE "netspeedtest" "sirpdboy/luci-app-netspeedtest" "master" "" "homebox speedtest"
UPDATE_PACKAGE "openlist2" "sbwml/luci-app-openlist2" "main"
UPDATE_PACKAGE "partexp" "sirpdboy/luci-app-partexp" "main"
UPDATE_PACKAGE "qbittorrent" "sbwml/luci-app-qbittorrent" "master" "" "qt6base qt6tools rblibtorrent"
UPDATE_PACKAGE "qmodem" "FUjr/QModem" "main"
UPDATE_PACKAGE "quickfile" "sbwml/luci-app-quickfile" "main"
UPDATE_PACKAGE "viking" "VIKINGYFY/packages" "main" "" "luci-app-timewol luci-app-wolplus"
UPDATE_PACKAGE "vnt" "lmq8267/luci-app-vnt" "main"
#更新软件包版本
UPDATE_VERSION() {
local PKG_NAME=$1
local PKG_MARK=${2:-false}
local PKG_FILES=$(find ./ ../feeds/packages/ -maxdepth 3 -type f -wholename "*/$PKG_NAME/Makefile")
if [ -z "$PKG_FILES" ]; then
echo "$PKG_NAME not found!"
return
fi
echo -e "\n$PKG_NAME version update has started!"
for PKG_FILE in $PKG_FILES; do
local PKG_REPO=$(grep -Po "PKG_SOURCE_URL:=https://.*github.com/\K[^/]+/[^/]+(?=.*)" $PKG_FILE)
local PKG_TAG=$(curl -sL "https://api.github.com/repos/$PKG_REPO/releases" | jq -r "map(select(.prerelease == $PKG_MARK)) | first | .tag_name")
local OLD_VER=$(grep -Po "PKG_VERSION:=\K.*" "$PKG_FILE")
local OLD_URL=$(grep -Po "PKG_SOURCE_URL:=\K.*" "$PKG_FILE")
local OLD_FILE=$(grep -Po "PKG_SOURCE:=\K.*" "$PKG_FILE")
local OLD_HASH=$(grep -Po "PKG_HASH:=\K.*" "$PKG_FILE")
local PKG_URL=$([[ "$OLD_URL" == *"releases"* ]] && echo "${OLD_URL%/}/$OLD_FILE" || echo "${OLD_URL%/}")
local NEW_VER=$(echo $PKG_TAG | sed -E 's/[^0-9]+/\./g; s/^\.|\.$//g')
local NEW_URL=$(echo $PKG_URL | sed "s/\$(PKG_VERSION)/$NEW_VER/g; s/\$(PKG_NAME)/$PKG_NAME/g")
local NEW_HASH=$(curl -sL "$NEW_URL" | sha256sum | cut -d ' ' -f 1)
echo "old version: $OLD_VER $OLD_HASH"
echo "new version: $NEW_VER $NEW_HASH"
if [[ "$NEW_VER" =~ ^[0-9].* ]] && dpkg --compare-versions "$OLD_VER" lt "$NEW_VER"; then
sed -i "s/PKG_VERSION:=.*/PKG_VERSION:=$NEW_VER/g" "$PKG_FILE"
sed -i "s/PKG_HASH:=.*/PKG_HASH:=$NEW_HASH/g" "$PKG_FILE"
echo "$PKG_FILE version has been updated!"
else
echo "$PKG_FILE version is already the latest!"
fi
done
}
#UPDATE_VERSION "软件包名" "测试版true可选默认为否"
UPDATE_VERSION "sing-box"
#UPDATE_VERSION "tailscale"