| for file in $files | for file in $files | ||||
| do | 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 | |||||
| # Use POSIX compliant pattern matching | |||||
| case "$file" in | |||||
| api/*.py) | |||||
| # set api_modified flag to true | |||||
| api_modified=true | |||||
| ;; | |||||
| web/*) | |||||
| # set web_modified flag to true | |||||
| web_modified=true | |||||
| ;; | |||||
| esac | |||||
| done | done | ||||
| # run linters based on the modified modules | # run linters based on the modified modules | ||||
| echo "Running Ruff linter on api module" | echo "Running Ruff linter on api module" | ||||
| # python style checks rely on `ruff` in path | # python style checks rely on `ruff` in path | ||||
| if ! command -v ruff &> /dev/null; then | |||||
| if ! command -v ruff > /dev/null 2>&1; then | |||||
| echo "Installing linting tools (Ruff, dotenv-linter ...) ..." | echo "Installing linting tools (Ruff, dotenv-linter ...) ..." | ||||
| poetry install -C api --only lint | poetry install -C api --only lint | ||||
| fi | fi |