commit 28a356d5b34b84440505371381c776bc60083e94 Author: admin Date: Mon Mar 23 15:09:33 2026 +0800 Sync subset from blackmatrix7/ios_rule_script diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9bc0b93 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.sync.log diff --git a/README.md b/README.md new file mode 100644 index 0000000..6bec0db --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# ios-rule-script-subset + +这个仓库只同步 `blackmatrix7/ios_rule_script` 里当前本地 `surgio` 需要的少量 Surge 规则文件,不做全量镜像。 + +当前同步目标: + +- `rule/Surge/Lan.list` <- `rule/Surge/Lan/Lan.list` +- `rule/Surge/Apple.list` <- `rule/Surge/Apple/Apple.list` +- `rule/Surge/OpenAI.list` <- `rule/Surge/OpenAI/OpenAI.list` +- `rule/Surge/Gemini.list` <- `rule/Surge/Gemini/Gemini.list` +- `rule/Surge/Claude.list` <- `rule/Surge/Claude/Claude.list` +- `rule/Surge/China.list` <- `rule/Surge/China/China.list` +- `rule/Surge/ChinaIPs.list` <- `rule/Surge/ChinaIPs/ChinaIPs.list` +- `rule/Surge/Proxy.list` <- `rule/Surge/Proxy/Proxy.list` + +同步脚本: + +- [sync_subset.sh](/Users/yuan/Desktop/workspaces/docker/ios-rule-script-subset/scripts/sync_subset.sh) + +这个项目给本地 `surgio` 用作远程规则源: + +- `https://git.halonice.com/admin/ios-rule-script-subset/raw/branch/main/rule/Surge` diff --git a/scripts/sync_subset.sh b/scripts/sync_subset.sh new file mode 100755 index 0000000..f6705db --- /dev/null +++ b/scripts/sync_subset.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +SURGE_DIR="$ROOT_DIR/rule/Surge" +UPSTREAM_BASE="https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge" +GITEA_ENV_FILE="$ROOT_DIR/../gitea/.env" + +if [[ ! -f "$GITEA_ENV_FILE" ]]; then + echo "missing Gitea env file: $GITEA_ENV_FILE" >&2 + exit 1 +fi + +source "$GITEA_ENV_FILE" + +GITEA_REPO_OWNER="${GITEA_REPO_OWNER:-admin}" +GITEA_REPO_NAME="${GITEA_REPO_NAME:-ios-rule-script-subset}" +GITEA_REMOTE_URL="https://${GITEA_ADMIN_USERNAME}:${GITEA_ADMIN_PASSWORD}@git.halonice.com/${GITEA_REPO_OWNER}/${GITEA_REPO_NAME}.git" + +mkdir -p "$SURGE_DIR" + +declare -A FILE_MAP=( + ["Lan.list"]="Lan/Lan.list" + ["Apple.list"]="Apple/Apple.list" + ["OpenAI.list"]="OpenAI/OpenAI.list" + ["Gemini.list"]="Gemini/Gemini.list" + ["Claude.list"]="Claude/Claude.list" + ["China.list"]="China/China.list" + ["ChinaIPs.list"]="ChinaIPs/ChinaIPs.list" + ["Proxy.list"]="Proxy/Proxy.list" +) + +for target in "${!FILE_MAP[@]}"; do + src="${FILE_MAP[$target]}" + tmp="$SURGE_DIR/.${target}.tmp" + curl -fsSL "$UPSTREAM_BASE/$src" -o "$tmp" + mv "$tmp" "$SURGE_DIR/$target" +done + +cd "$ROOT_DIR" + +if [[ ! -d .git ]]; then + git init -b main >/dev/null + git remote add origin "$GITEA_REMOTE_URL" +fi + +git add README.md .gitignore scripts/sync_subset.sh rule/Surge + +if git diff --cached --quiet; then + echo "No upstream changes." + exit 0 +fi + +git -c user.name="$GITEA_ADMIN_USERNAME" -c user.email="$GITEA_ADMIN_EMAIL" commit -m "Sync subset from blackmatrix7/ios_rule_script" >/dev/null + +git push origin main