Spaces:
Running
Running
. "$(dirname -- "$0")/_/husky.sh" | |
# get the list of modified files | |
files=$(git diff --cached --name-only) | |
# check if api or web directory is modified | |
api_modified=false | |
web_modified=false | |
for file in $files | |
do | |
if [[ $file == "api/"* && $file == *.py ]]; then | |
# set api_modified flag to true | |
api_modified=true | |
elif [[ $file == "web/"* ]]; then | |
# set web_modified flag to true | |
web_modified=true | |
fi | |
done | |
# run linters based on the modified modules | |
if $api_modified; then | |
echo "Running Ruff linter on api module" | |
# python style checks rely on `ruff` in path | |
if ! command -v ruff &> /dev/null; then | |
echo "Installing Ruff ..." | |
pip install ruff | |
fi | |
ruff check ./api || status=$? | |
status=${status:-0} | |
if [ $status -ne 0 ]; then | |
echo "Ruff linter on api module error, exit code: $status" | |
echo "Please run 'dev/reformat' to fix the fixable linting errors." | |
exit 1 | |
fi | |
fi | |
if $web_modified; then | |
echo "Running ESLint on web module" | |
cd ./web || exit 1 | |
npx lint-staged | |
cd ../ | |
fi | |