#!/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