#!/bin/bash

# $1: remote name (e.g., origin)
# $2: remote url (e.g., git@github.com:clash-verge-rev/clash-verge-rev.git)

if git diff --cached --name-only | grep -q '^src-tauri/'; then
    cargo clippy --manifest-path ./src-tauri/Cargo.toml
    if [ $? -ne 0 ]; then
        echo "Clippy found issues in src-tauri. Please fix them before pushing."
        exit 1
    fi
fi


# Only run format check if the remote exists and is the main repo
remote_name="$1"
if git remote get-url "$remote_name" >/dev/null 2>&1; then
    remote_url=$(git remote get-url "$remote_name")
    if [[ "$remote_url" =~ github\.com[:/]+clash-verge-rev/clash-verge-rev(\.git)?$ ]]; then
        echo "[pre-push] Detected push to clash-verge-rev/clash-verge-rev ($remote_url)"
        echo "[pre-push] Running pnpm format:check..."
        pnpm format:check
        if [ $? -ne 0 ]; then
            echo "❌ Code format check failed. Please fix formatting before pushing."
            exit 1
        fi
    else
        echo "[pre-push] Not pushing to target repo. Skipping format check."
    fi
else
    echo "[pre-push] Remote $remote_name does not exist. Skipping format check."
fi

exit 0
