-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcheck.sh
More file actions
executable file
·101 lines (89 loc) · 1.99 KB
/
Copy pathcheck.sh
File metadata and controls
executable file
·101 lines (89 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/usr/bin/env bash
set -euo pipefail
# 切换到仓库根目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
FIX_MODE=false
RUN_RUFF=true
RUN_MYPY=true
RUN_PYRIGHT=true
RUN_PYTEST=true
usage() {
cat <<EOF
Usage: $0 [options]
Run static checks and tests for the repository.
Tools: ruff, mypy, pyright, pytest
Options:
--fix Run ruff with --fix
--only-ruff Run only ruff
--only-mypy Run only mypy
--only-pyright Run only pyright
--only-pytest Run only pytest
-h, --help Show this help message
EOF
}
while [[ $# -gt 0 ]]; do
case "$1" in
--fix)
FIX_MODE=true
shift
;;
--only-ruff)
RUN_MYPY=false; RUN_PYRIGHT=false; RUN_PYTEST=false
shift
;;
--only-mypy)
RUN_RUFF=false; RUN_PYRIGHT=false; RUN_PYTEST=false
shift
;;
--only-pyright)
RUN_RUFF=false; RUN_MYPY=false; RUN_PYTEST=false
shift
;;
--only-pytest)
RUN_RUFF=false; RUN_MYPY=false; RUN_PYRIGHT=false
shift
;;
-h|--help)
usage
exit 0
;;
*)
echo "Unknown option: $1"
usage
exit 1
;;
esac
done
run_cmd() {
local name="$1"
shift
echo ""
echo "========================================"
echo " Running: $name"
echo "========================================"
if "$@"; then
echo "✅ $name passed"
else
echo "❌ $name failed"
exit 1
fi
}
if $RUN_RUFF; then
if $FIX_MODE; then
run_cmd "ruff check --fix" uv run ruff check . --fix
else
run_cmd "ruff check" uv run ruff check .
fi
fi
if $RUN_MYPY; then
run_cmd "mypy" uv run mypy src
fi
if $RUN_PYRIGHT; then
run_cmd "pyright" uv run pyright
fi
if $RUN_PYTEST; then
run_cmd "pytest" uv run pytest
fi
echo ""
echo "🎉 All checks passed!"