1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-29 12:07:46 +00:00

Add common pre-commit hooks

Pre-commits are usually used to minimize busy work by the contributors, e.g., by fixing extra spacing, formatting, etc. This PR adds various basic text file checks to the repo. I also made yaml spacing a bit cleaner.

I was a bit surprised it is used for `cargo clippy` because you wouldn't want clippy's auto-fixes to be auto-applied by CI, so usually GitHub workflow simply checks runs it regularly. This is outside of the scope for this PR, but perhaps it should be removed here?
This commit is contained in:
Yuri Astrakhan 2025-06-03 18:59:36 -04:00
parent ef9cb277fc
commit f46e096d35

View file

@ -1,21 +1,41 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos: repos:
- repo: local - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks: hooks:
- id: rust-linting - id: check-added-large-files
- id: check-executables-have-shebangs
- id: check-json
- id: check-shebang-scripts-are-executable
exclude: '.+\.rs' # would be triggered by #![some_attribute]
- id: check-symlinks
- id: check-toml
- id: check-yaml
args: [ --allow-multiple-documents ]
- id: destroyed-symlinks
- id: end-of-file-fixer
- id: mixed-line-ending
args: [ --fix=lf ]
- id: trailing-whitespace
- repo: local
hooks:
- id: rust-linting
name: Rust linting name: Rust linting
description: Run cargo fmt on files included in the commit. description: Run cargo fmt on files included in the commit.
entry: cargo +stable fmt -- entry: cargo +stable fmt --
pass_filenames: true pass_filenames: true
types: [file, rust] types: [file, rust]
language: system language: system
- id: rust-clippy - id: rust-clippy
name: Rust clippy name: Rust clippy
description: Run cargo clippy on files included in the commit. description: Run cargo clippy on files included in the commit.
entry: cargo +stable clippy --workspace --all-targets --all-features -- -D warnings entry: cargo +stable clippy --workspace --all-targets --all-features -- -D warnings
pass_filenames: false pass_filenames: false
types: [file, rust] types: [file, rust]
language: system language: system
- id: cspell - id: cspell
name: Code spell checker (cspell) name: Code spell checker (cspell)
description: Run cspell to check for spelling errors. description: Run cspell to check for spelling errors.
entry: cspell --no-must-find-files -- entry: cspell --no-must-find-files --