# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
default_stages: [commit]

default_language_version:
    python: python3

exclude: |
    (?x)^(
        (
            base|
            build|
            buildtools|
            crypto|
            net|
            testing|
            third_party|
            tools/gyp|
            url
        )/
        |
        components/update_client/((?!cobalt).)*$
    )

repos:
-   repo: https://cobalt.googlesource.com/pre-commit-hooks
    rev: e1668fe86af3810fbca72b8653fe478e66a0afdc  # v3.2.0
    hooks:
    -   id: check-case-conflict
    -   id: end-of-file-fixer
    -   id: trailing-whitespace
    -   id: mixed-line-ending

-   repo: https://cobalt.googlesource.com/codespell
    rev: 67c489d36dd4c52cbb9e4755d90c35c6231842ef  # v2.0.0
    hooks:
    -   id: codespell
        name: Spell Check
        args: [-x, .codespellignorelines,
               # The --ignore-words-list argument has a bug where it needs to
               # be lowercase, see
               # https://github.com/codespell-project/codespell/issues/1390
               --ignore-words-list, atleast]
        exclude: |
            (?x)^(
                starboard/[^/]+/i18n/|
                cobalt/content/licenses/|
                cobalt/fetch/embedded_scripts|
                cobalt/loader/cors_preflight.cc
            )

-   repo: local
    hooks:
    -   id: sync-keyboxes
        name: sync-keyboxes
        entry: python ./precommit_hooks/sync_keyboxes_wrapper.py
        language: python
        stages: [post-checkout]
        always_run: true
    -   id: clang-format
        name: clang-format
        entry: clang-format
        language: python
        types: [c++]
        args: [-i, -style=file]
        additional_dependencies: ['clang-format']
    -   id: cpplint
        name: cpplint
        entry: cpplint
        language: system
        types: [c++]
        args: [--verbose=4, --quiet]
        exclude: |
            (?x)(
                ^cobalt/bindings/(templates|generated)/|
                ^starboard/shared/uikit/.*\.h$
            )
    -   id: yapf
        name: yapf
        description: Run yapf (the python formatter) in-place on changed files.
        entry: yapf
        language: system
        types: [python]
        args: [-i, -vv]
    -   id: pylint
        name: pylint
        entry: pylint
        language: system
        types: [python]
        args: [-d W0201]
    -   id: google-java-format
        name: google-java-format
        entry: python ./precommit_hooks/google_java_format_wrapper.py
        language: python
        types: [java]
        args: [-i]
    -   id: gcheckstyle
        name: Lint Java With gcheckstyle
        entry: python ./precommit_hooks/gcheckstyle_wrapper.py
        language: python
        types: [java]
        verbose: true
    -   id: check-copyright-year
        name: check copyright year
        entry: python ./precommit_hooks/check_copyright_year.py
        language: python
        types: [file, text]
        stages: [push]
        exclude: |
            (?x)^(
                .pre-commit-config.yaml$|
                cobalt/media/|
                cobalt/layout_tests/testdata/|
                nb/|
                starboard/android/apk/app/src/main/java/dev/cobalt/media/MediaDrmBridge.java$|
                starboard/shared/starboard/player/filter/decoded_audio_queue.cc$|
                starboard/shared/starboard/player/filter/decoded_audio_queue.h$|
                starboard/shared/starboard/player/filter/wsola_internal.cc$
            )
        exclude_types: [markdown]
        verbose: true
    -   id: check-if-starboard-interface-changed
        name: check if starboard interface changed
        entry: python ./precommit_hooks/warn_that_starboard_interface_changed_wrapper.py
        language: python
        files: '^starboard/[^/]+\.h$'
        stages: [push]
    -   id: download-resources
        name: download resources
        entry: python ./download_resources.py
        language: python
        stages: [post-checkout]
        always_run: true
    -   id: test-download-from-gcs-helper
        name: test download from gcs helper
        entry: python
        language: python
        pass_filenames: false
        always_run: true
        stages: [push]
        args: [-m, unittest, tools/download_from_gcs_test.py]
    -   id: test-python3-compatibility
        name: Test Python 3 Compatibility
        description: Checks that scripts can be run in Python 3
        entry: python precommit_hooks/python3_check.py
        language: python
        types: [python]
        verbose: true
    -   id: check-bug-in-commit-message
        name: Check Bug In Commit Message
        description: Checks for a tracking bug in a commit message
        entry: python precommit_hooks/check_bug_in_description_wrapper.py
        language: python
        stages: [push]
        always_run: true
        pass_filenames: false
    -   id: osslint
        name: osslint
        entry: python precommit_hooks/osslint_wrapper.py
        language: python
        types: [text]
        stages: [manual]
    -   id: internal-file-check
        name: Internal File Check
        entry: python precommit_hooks/internal_file_check_wrapper.py
        language: python
        types: [text]
        # TODO: Remove docker-compose-windows.yml after internal check evaluates
        # properly on it.
        exclude: '(^docker-compose-windows(-internal)?.yml|EXCLUDE\.FILES(\.RECURSIVE)?|codereview\.settings)$'
    -   id: gn-format
        name: GN format
        entry: gn format
        language: system
        files: '.*\.gni?$'
