1+ #! /usr/bin/env bash
2+ set -euo pipefail
3+
4+ echo " 🔍 Running pre-push checks..."
5+ echo " "
6+
7+ # Check if we're in a nix environment
8+ if command -v nix > /dev/null 2>&1 && [ -f " flake.nix" ]; then
9+ # Check formatting
10+ echo " 📝 Checking code formatting..."
11+ if ! nix develop -c cargo fmt --check 2> /dev/null; then
12+ echo " "
13+ echo " ❌ Code is not formatted. Please run 'nix develop -c cargo fmt' before pushing."
14+ echo " "
15+ echo " To see what needs formatting:"
16+ echo " nix develop -c cargo fmt --check --verbose"
17+ exit 1
18+ fi
19+ echo " ✅ Formatting check passed"
20+ echo " "
21+
22+ # Run clippy
23+ echo " 🔎 Running clippy linting..."
24+ if ! nix develop -c cargo clippy --workspace -- -D warnings 2>&1 ; then
25+ echo " "
26+ echo " ❌ Clippy found issues. Please fix them before pushing."
27+ echo " "
28+ echo " To see all issues:"
29+ echo " nix develop -c cargo clippy --workspace"
30+ echo " "
31+ echo " To attempt automatic fixes:"
32+ echo " nix develop -c cargo clippy --workspace --fix --allow-dirty"
33+ exit 1
34+ fi
35+ echo " ✅ Clippy check passed"
36+ else
37+ # Fallback to regular cargo
38+ echo " 📝 Checking code formatting..."
39+ if ! cargo fmt --check 2> /dev/null; then
40+ echo " "
41+ echo " ❌ Code is not formatted. Please run 'cargo fmt' before pushing."
42+ echo " "
43+ echo " To see what needs formatting:"
44+ echo " cargo fmt --check --verbose"
45+ exit 1
46+ fi
47+ echo " ✅ Formatting check passed"
48+ echo " "
49+
50+ # Run clippy
51+ echo " 🔎 Running clippy linting..."
52+ if ! cargo clippy --workspace -- -D warnings 2>&1 ; then
53+ echo " "
54+ echo " ❌ Clippy found issues. Please fix them before pushing."
55+ echo " "
56+ echo " To see all issues:"
57+ echo " cargo clippy --workspace"
58+ echo " "
59+ echo " To attempt automatic fixes:"
60+ echo " cargo clippy --workspace --fix --allow-dirty"
61+ exit 1
62+ fi
63+ echo " ✅ Clippy check passed"
64+ fi
65+
66+ echo " "
67+ echo " ✅ All pre-push checks passed! Proceeding with push..."
68+ echo " "
0 commit comments