2025-03-13 12:51:20 +08:00
|
|
|
#!/bin/bash
|
2025-10-09 10:29:20 +08:00
|
|
|
set -euo pipefail
|
2025-03-13 12:51:20 +08:00
|
|
|
|
2025-10-22 00:08:16 +08:00
|
|
|
remote_name="${1:-origin}"
|
|
|
|
|
remote_url="${2:-unknown}"
|
|
|
|
|
|
|
|
|
|
ROOT_DIR="$(git rev-parse --show-toplevel)"
|
|
|
|
|
cd "$ROOT_DIR"
|
|
|
|
|
|
|
|
|
|
if ! command -v pnpm >/dev/null 2>&1; then
|
|
|
|
|
echo "❌ pnpm is required for pre-push checks."
|
|
|
|
|
exit 1
|
2025-06-14 02:47:15 +08:00
|
|
|
fi
|
2025-03-13 12:51:20 +08:00
|
|
|
|
2025-10-22 00:08:16 +08:00
|
|
|
echo "[pre-push] Preparing to push to '$remote_name' ($remote_url). Running full validation..."
|
|
|
|
|
|
|
|
|
|
echo "[pre-push] Checking Prettier formatting..."
|
|
|
|
|
pnpm format:check
|
|
|
|
|
|
|
|
|
|
echo "[pre-push] Running ESLint..."
|
|
|
|
|
pnpm lint
|
|
|
|
|
|
|
|
|
|
echo "[pre-push] Running TypeScript type checking..."
|
|
|
|
|
pnpm typecheck
|
|
|
|
|
|
|
|
|
|
if command -v cargo >/dev/null 2>&1; then
|
|
|
|
|
echo "[pre-push] Verifying Rust formatting..."
|
|
|
|
|
(
|
|
|
|
|
cd src-tauri
|
|
|
|
|
cargo fmt --check
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
echo "[pre-push] Running cargo clippy..."
|
|
|
|
|
(
|
|
|
|
|
cd src-tauri
|
|
|
|
|
cargo clippy-all
|
|
|
|
|
)
|
2025-06-18 18:49:48 +08:00
|
|
|
else
|
2025-10-22 00:08:16 +08:00
|
|
|
echo "[pre-push] ⚠️ cargo not found; skipping Rust checks."
|
2025-06-18 18:43:59 +08:00
|
|
|
fi
|
|
|
|
|
|
2025-10-09 10:29:20 +08:00
|
|
|
echo "[pre-push] All checks passed."
|
2025-10-07 18:28:32 +08:00
|
|
|
exit 0
|