1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 19:47:45 +00:00

Add common pre-commit hooks (#8059)

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:
Sylvestre Ledru 2025-06-06 17:20:15 +02:00 committed by GitHub
commit df0ef3b589
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

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 --