# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v6.0.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml
      - id: check-added-large-files
  - repo: https://github.com/batmac/pre-commit-zig
    rev: v0.3.0
    hooks:
      - id: zig-fmt
  - repo: local
    hooks:
      - id: zlint
        name: Run zlint
        # zlint accepts file paths only via stdin (-S); positional
        # args are interpreted as directory names and silently
        # produce no output. Pipe pre-commit's file list through
        # bash to get the paths to zlint as stdin lines.
        entry: bash -c 'printf "%s\n" "$@" | zlint --deny-warnings --fix -S' --
        language: system
        types: [zig]
  - repo: https://github.com/batmac/pre-commit-zig
    rev: v0.3.0
    hooks:
      - id: zig-build
  - repo: local
    hooks:
      - id: test
        name: Run zig build test
        entry: zig
        args: ["build", "coverage", "-Dcoverage-threshold=75"]
        language: system
        types: [file]
        pass_filenames: false
