# See https://pre-commit.com for more information
# See https://pre-commit.ci for more information
ci:
  # Forĝejo/Gitea mirrors will autoclose pull requests. This should decrease
  # the frequency of unnecessary PRs.
  # https://github.com/pre-commit-ci/issues/issues/83
  autoupdate_schedule: quarterly
  skip: [latexmk, exiftool, prettier]

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.6.0
    hooks:
      - id: check-added-large-files
      - id: check-case-conflict
      - id: check-yaml
      - id: check-executables-have-shebangs
      - id: check-shebang-scripts-are-executable
      - id: destroyed-symlinks
      - id: detect-private-key
      - id: end-of-file-fixer
      - id: fix-byte-order-marker
      - id: trailing-whitespace
        args: ["--markdown-linebreak-ext", "md,markdown"]
        # I don't want to touch licenses or past association logs or Limnoria
        # configuration exports.
        exclude: ^LICENSES\/.*|LICENSE|associations\/.*|.*\.conf$$
        # File types depending on trailing whitespace. Use identify-cli
        exclude_types:
          [svg, tsv]
          #- id: check-docstring-first
      - id: check-json
      - id: check-merge-conflict
      - id: check-toml
      - id: check-xml
        #- id: debug-statements
        #- id: fix-encoding-pragma
        #args: [--remove]
      - id: mixed-line-ending
        args: [--fix=auto]
      - id: pretty-format-json
        args:
          [--autofix, --no-ensure-ascii]
          #- id: requirements-txt-fixer

  - repo: https://github.com/pre-commit/sync-pre-commit-deps
    rev: v0.0.1
    hooks:
      - id: sync-pre-commit-deps

  - repo: https://github.com/pre-commit-ci/pre-commit-ci-config
    rev: v1.6.1
    hooks:
      - id: check-pre-commit-ci-config

  - repo: https://github.com/thlorenz/doctoc
    rev: v2.2.0
    hooks:
      - id: doctoc
        args: [--update-only, --notitle]

  - repo: https://github.com/python-jsonschema/check-jsonschema
    rev: 0.28.5
    hooks:
      #- id: check-dependabot
      #- id: check-github-actions
      #- id: check-github-workflows
      - id: check-gitlab-ci

  - repo: local
    hooks:
      - id: prettier
        name: prettier
        entry: pnpm exec prettier --cache --ignore-unknown --write
        language: system
        exclude_types: [json]

  - repo: https://github.com/editorconfig-checker/editorconfig-checker.python
    rev: "2.7.3"
    hooks:
      - id: editorconfig-checker
        alias: ec
        args: [-disable-max-line-length]

  - repo: local
    hooks:
      - id: latexmk
        name: latexmk
        entry: latexmk -quiet -f
        language: system
        types: [text, tex]
        # I have no idea where latexmk wants the template
        exclude: LaTeX\/standardi-asiakirja.tex

  # Fedora: perl-Image-ExifTool
  - repo: local
    hooks:
      - id: exiftool
        name: Remove all EXIF metadata using exiftool
        entry: exiftool -all=
        language: system
        types: [image]