diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 57dbf73d8a23..868cee5abc7d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -63,9 +63,21 @@ repos: files: | (?x)^( .*BUILD.*| + .*MODULE.bazel.*| .*WORKSPACE.*| .*\.bzl )$ + - id: check-bazel-mod-deps + # Check this after buildifier because buildifier may modify inputs, and + # MODULE.bazel.lock includes line/column details. + name: Check bazel mod deps + entry: scripts/bazel_mod_deps.py + language: python + files: | + (?x)^( + .*MODULE.bazel.* + .*WORKSPACE.*| + )$ - id: clang-format name: clang-format entry: clang-format diff --git a/scripts/bazel_mod_deps.py b/scripts/bazel_mod_deps.py new file mode 100755 index 000000000000..18045342db6a --- /dev/null +++ b/scripts/bazel_mod_deps.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 + +"""Run `bazel mod deps` for pre-commit. Lets pre-commit handle modifications.""" + +__copyright__ = """ +Part of the Carbon Language project, under the Apache License v2.0 with LLVM +Exceptions. See /LICENSE for license information. +SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +""" + +import subprocess + +import scripts_utils + + +def main() -> None: + scripts_utils.chdir_repo_root() + bazel = scripts_utils.locate_bazel() + subprocess.run([bazel, "mod", "deps"]) + + +if __name__ == "__main__": + main()