# 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|
            cobalt/updater|
            components/crash/core/common|
            components/metrics_services_manager|
            components/metrics|
            components/prefs|
            components/ukm|
            components/variations|
            components/version_info|
            crypto|
            extensions/buildflags|
            glimp/include|
            net|
            internal/kokoro/third-party|
            internal/starboard/shared/playstation/glimp/shaders|
            testing|
            third_party|
            tools/gyp|
            tools/python|
            url
        )/
        |
        components/update_client/((?!cobalt).)*$
        |
        # Ignore everything under tools/metrics _except_ Cobalt files. We
        # need those validated to keep the telemetry/metrics pipeline working.
        tools/metrics/((?!cobalt\/).)*$|
        .*\.pb\.cc$ |
        .*\.pb\.h$ |
        .*\.patch$ |
        .*Proto.java$|
        .*\.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
    -   id: check-xml

-   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,varius,ridiculus,statics",
               ]
        exclude: |
            (?x)^(
                (internal/)?starboard/[^/]+/i18n/|
                cobalt/content/licenses/|
                cobalt/content/ssl/|
                cobalt/fetch/embedded_scripts|
                cobalt/streams/embedded_scripts|
                cobalt/loader/cors_preflight.cc|
                internal/cobalt/browser/splash_screen/youtube_splash_screen.html|
                internal/starboard/shared/playstation/storage_internal.cc|
                starboard/loader_app/app_key_test.cc|
                starboard/shared/starboard/player/testdata|
                starboard/shared/win32/media_transform.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++]
        exclude_types: [objective-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)^(
                .pylintrc$|
                .pre-commit-config.yaml$|
                cobalt/base/unicode/|
                cobalt/demos/content/|
                cobalt/layout_tests/testdata/|
                cobalt/math/|
                cobalt/media/|
                cobalt/streams/|
                cobalt/updater/|
                cobalt/webdriver/screencast/|
                cobalt/websocket/|
                components/crx_file/|
                content/|
                glimp/|
                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/testdata/licences/|
                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: gn-format
        name: GN format
        entry: gn format
        language: system
        files: '.*\.gni?$'
