| # Git has the notion of hooks, which are custom scripts that are run on |
| # specific events. One of these hooks is the pre-commit hook (located at |
| # .git/hooks/pre-commit), which is run when committing, before specifying a |
| # message. |
| # |
| # To ease management of the pre-commit hook, the pre-commit framework |
| # ( https://pre-commit.com ) was developed. This is the configuration file |
| # for that framework. It contains a list of hooks, with information on where |
| # to find them and on which files to run them. |
| # |
| # See here ( https://pre-commit.com/#install ) on how to install the |
| # pre-commit framework. |
| # |
| # To run all the hooks specified in this file manually, you can do: |
| # $ pre-commit run |
| # |
| # To run some hooks and skip others, you can use environment variable SKIP: |
| # $ SKIP=flake8,isort pre-commit run |
| # |
| # To install the pre-commit framework in the repository in order to run the |
| # hooks on every commit, do: |
| # $ pre-commit install |
| # |
| # After installing the pre-commit framework, you can skip running all |
| # pre-commit hooks using --no-verify, or some using SKIP. |
| # $ git commit --no-verify ... |
| # $ SKIP=flake8,isort git commit ... |
| # |
| # In case some of these hooks don't work for you, you can make the SKIP |
| # setting permanent by: |
| # - setting SKIP in your environment |
| # (this will affect all repositories where it is set) |
| # - setting SKIP in .git/hooks/pre-commit by adding "export SKIP=..." |
| # (this will affect only this repository, but it may have to be re-added |
| # if .git/hooks/pre-commit is regenerated) |
| # |
| # See https://pre-commit.com for more information |
| # See https://pre-commit.com/hooks.html for more hooks |
| |
| minimum_pre_commit_version: 4.5.1 |
| default_install_hook_types: [pre-commit, commit-msg] |
| default_stages: [pre-commit] |
| |
| repos: |
| # Python hooks. Run these for (in glob notation): |
| # |
| # - gdb/gdb-gdb.py.in |
| # - gdb/*.py |
| # - gdb/python/**/*.py |
| # - gdb/testsuite/*.py |
| # |
| # Because gdb/gdb-gdb.py.in is not classified as python, we use |
| # 'types_or: [file]' to override the default type for these hooks. |
| # |
| - repo: https://github.com/psf/black-pre-commit-mirror |
| rev: 26.5.1 |
| hooks: |
| - id: black |
| types_or: [file] |
| files: '^gdb/.*\.py(\.in)?$' |
| - repo: https://github.com/pycqa/flake8 |
| rev: 7.3.0 |
| hooks: |
| - id: flake8 |
| types_or: [file] |
| files: '^gdb/.*\.py(\.in)?$' |
| args: [--config, gdb/setup.cfg] |
| - repo: https://github.com/pycqa/isort |
| rev: 9.0.0a3 |
| hooks: |
| - id: isort |
| types_or: [file] |
| files: '^gdb/.*\.py(\.in)?$' |
| |
| # Codespell hooks. |
| - repo: https://github.com/codespell-project/codespell |
| rev: v2.4.2 |
| hooks: |
| - id: codespell |
| files: '^(gdb|gdbserver|gdbsupport)/' |
| args: [--toml, gdb/pyproject.toml] |
| - id: codespell |
| name: codespell-log |
| entry: gdb/contrib/codespell-log.sh |
| args: [--toml, gdb/pyproject.toml] |
| verbose: true |
| stages: [commit-msg] |
| |
| # Tclint hooks. |
| - repo: https://github.com/nmoroze/tclint |
| rev: v0.8.0 |
| hooks: |
| - id: tclint |
| args: [--trust-plugins] |
| files: '^gdb/testsuite/.*\.(exp|tcl)$' |
| |
| # Local hooks. |
| - repo: local |
| hooks: |
| - id: &id0 check-include-guards |
| name: *id0 |
| language: unsupported_script |
| entry: gdb/check-include-guards.py |
| # All gdb header files, but not headers in the test suite. |
| files: '^(gdb(support|server)?)/.*\.h$' |
| exclude: '.*/testsuite/.*' |
| - id: &id1 check-gnu-style |
| name: *id1 |
| language: python |
| additional_dependencies: ['termcolor', 'unidiff'] |
| entry: gdb/contrib/check-gnu-style-pre-commit.sh |
| files: '^(gdb(support|server)?)/.*\.(c|h|cc)$' |
| exclude: '.*/testsuite/.*' |
| verbose: true |
| - id: &id2 check-whitespace |
| name: *id2 |
| language: unsupported_script |
| entry: gdb/contrib/check-whitespace-pre-commit.py |
| files: '^(gdb(support|server)?)/.*$' |
| types: ['text'] |
| - id: &id3 pre-commit-setup |
| name: *id3 |
| language: python |
| entry: gdb/contrib/pre-commit-setup.py |
| additional_dependencies: ["pyyaml"] |
| always_run: true |
| pass_filenames: false |
| - id: &id4 check-file-mode |
| name: *id4 |
| language: unsupported_script |
| entry: gdb/contrib/check-file-mode.sh |
| files: '^(gdb|gdbserver|gdbsupport)/.*$' |