repos:
- repo: local
hooks:
- id: cargo-fmt
name: cargo fmt
entry: cargo fmt --all --
language: system
types: [rust]
pass_filenames: false
- id: cargo-clippy-core
name: cargo clippy (core)
entry: cargo clippy --lib -- -D warnings
language: system
types: [rust]
pass_filenames: false
- id: cargo-clippy-postgres
name: cargo clippy (postgres)
entry: cargo clippy --lib --features postgres -- -D warnings
language: system
types: [rust]
pass_filenames: false
- id: cargo-clippy-mysql
name: cargo clippy (mysql)
entry: cargo clippy --lib --features mysql -- -D warnings
language: system
types: [rust]
pass_filenames: false
- id: cargo-clippy-sqlite
name: cargo clippy (sqlite)
entry: cargo clippy --lib --features sqlite -- -D warnings
language: system
types: [rust]
pass_filenames: false
- id: cargo-clippy-duckdb
name: cargo clippy (duckdb)
entry: bash -c 'if command -v duckdb >/dev/null 2>&1 || [ -f /usr/local/lib/libduckdb.so ]; then cargo clippy --lib --features duckdb -- -D warnings; else echo "⚠️ DuckDB not available, skipping clippy"; fi'
language: system
types: [rust]
pass_filenames: false
- id: cargo-test-core
name: cargo test (core)
entry: cargo test --lib
language: system
types: [rust]
pass_filenames: false
- id: cargo-test-postgres
name: cargo test (postgres)
entry: cargo test --features postgres --lib
language: system
types: [rust]
pass_filenames: false
- id: cargo-test-mysql
name: cargo test (mysql)
entry: cargo test --features mysql --lib
language: system
types: [rust]
pass_filenames: false
- id: cargo-test-sqlite
name: cargo test (sqlite)
entry: cargo test --features sqlite --lib
language: system
types: [rust]
pass_filenames: false
- id: cargo-test-duckdb
name: cargo test (duckdb)
entry: bash -c 'if command -v duckdb >/dev/null 2>&1 || [ -f /usr/local/lib/libduckdb.so ]; then cargo test --features duckdb --lib; else echo "⚠️ DuckDB not available, skipping tests"; fi'
language: system
types: [rust]
pass_filenames: false
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-toml
- id: check-json
- id: check-merge-conflict
- id: check-case-conflict
- id: mixed-line-ending
default_language_version:
python: python3
fail_fast: false