Sync subset from blackmatrix7/ios_rule_script

This commit is contained in:
admin
2026-03-23 15:09:33 +08:00
commit 28a356d5b3
3 changed files with 79 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.sync.log

22
README.md Normal file
View File

@@ -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`

56
scripts/sync_subset.sh Executable file
View File

@@ -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