# 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|
            components/crash/core/common|
            components/metrics|
            components/metrics_services_manager|
            components/ukm|
            components/variations|
            components/version_info|
            crypto|
            extensions/buildflags|
            net|
            internal/starboard/shared/playstation/glimp/shaders|
            testing|
            third_party|
            tools/gyp|
            url
        )/
        |
        components/update_client/((?!cobalt).)*$
        |
        .*\.sig$
    )

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)^(
                (internal/)?starboard/[^/]+/i18n/|
                cobalt/content/licenses/|
                cobalt/fetch/embedded_scripts|
                cobalt/loader/cors_preflight.cc|
                internal/cobalt/browser/splash_screen/youtube_splash_screen.html|
                internal/starboard/shared/playstation/storage_internal.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)/|
                ^internal/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?$'
