Description
Implement a pre-commit hook for formatting Nix files using nixpkgs-fmt or alejandra.
Requirements
- Support multiple formatters (nixpkgs-fmt, alejandra, nixfmt)
- Auto-install formatter if not available
- Format files in-place
- Support configuration for formatter choice
- Check mode (verify formatting without changing files)
Implementation Details
- Location:
hooks/nix/nix-fmt.sh
- Language: bash script
- File pattern:
*.nix
Testing
- Test with unformatted nix files
- Test with already formatted files
- Test formatter auto-installation
- Test different formatter choices
- Test check mode vs format mode
Configuration in .pre-commit-hooks.yaml
- id: nix-fmt
name: Format Nix files
description: Formats Nix files using nixpkgs-fmt or alejandra
entry: hooks/nix/nix-fmt.sh
language: script
files: \.nix$
args: [--formatter=nixpkgs-fmt]
Description
Implement a pre-commit hook for formatting Nix files using nixpkgs-fmt or alejandra.
Requirements
Implementation Details
hooks/nix/nix-fmt.sh*.nixTesting
Configuration in .pre-commit-hooks.yaml