Files
ios-rule-script-subset/scripts/sync_subset.sh

55 lines
1.5 KiB
Bash
Executable File

#!/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"
while IFS='|' read -r target src; do
[[ -z "$target" ]] && continue
tmp="$SURGE_DIR/.${target}.tmp"
curl -fsSL "$UPSTREAM_BASE/$src" -o "$tmp"
mv "$tmp" "$SURGE_DIR/$target"
done <<'EOF'
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
EOF
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