1# Licensed to the Apache Software Foundation (ASF) under one 2# or more contributor license agreements. See the NOTICE file 3# distributed with this work for additional information 4# regarding copyright ownership. The ASF licenses this file 5# to you under the Apache License, Version 2.0 (the 6# "License"); you may not use this file except in compliance 7# with the License. You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, 12# software distributed under the License is distributed on an 13# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14# KIND, either express or implied. See the License for the 15# specific language governing permissions and limitations 16# under the License. 17 18PYTHON := $(shell command -v python || command -v python3 || echo python) 19PIP := $(PYTHON) -m pip 20 21.PHONY: check checkinstall checkupdate createwordlist install 22 23check: checkinstall 24 @echo "Running pre-commit checks..." 25 pre-commit run --all-files 26 27checkinstall: install 28 @echo "Installing pre-commit hooks..." 29 pre-commit install 30 31checkupdate: 32 @echo "Updating pre-commit hooks..." 33 pre-commit autoupdate 34 35createwordlist: install 36 @echo "Regenerating the ignored words list codespell.txt" 37 codespell --skip='./extras' | cut -f2 -d' ' | tr A-Z a-z | sort | uniq > .github/linters/codespell.txt 38 39install: 40 @echo "Installing dependencies..." 41 @if [ -f requirements-dev.txt ]; then \ 42 $(PIP) install -r requirements-dev.txt; \ 43 else \ 44 echo "Error: requirements-dev.txt not found."; \ 45 exit 1; \ 46 fi 47