module(
    name = "pre-commit",
    version = "1.0.11",
    compatibility_level = 1,
)

bazel_dep(name = "platforms", version = "0.0.11")
bazel_dep(name = "bazel_skylib", version = "1.7.1")
bazel_dep(name = "rules_python", version = "1.6.0")
bazel_dep(name = "rules_license", version = "1.0.0")
bazel_dep(name = "rules_diff", version = "1.0.0")
bazel_dep(name = "toolchain_utils", version = "1.2.0")
bazel_dep(name = "download_utils", version = "1.0.1")
bazel_dep(name = "ape", version = "1.0.1")

# TODO: Remove this in favour of `rules_python//uv:lock.bzl` when released
bazel_dep(name = "rules_uv", version = "0.56.0", dev_dependency = True)
bazel_dep(name = "buildifier_prebuilt", version = "8.0.1", dev_dependency = True)
bazel_dep(name = "hermetic_cc_toolchain", version = "4.0.1", dev_dependency = True)
single_version_override(
    module_name = "hermetic_cc_toolchain",
    patch_strip = 1,
    patches = ["patches/hermetic_cc_toolchain/bazel-9.patch"],
)

zig = use_extension("@hermetic_cc_toolchain//toolchain:ext.bzl", "toolchains", dev_dependency = True)
use_repo(zig, zig = "zig_sdk")

register_toolchains(
    "@zig//toolchain/...",
    dev_dependency = True,
)

python = use_extension("@rules_python//python/extensions:python.bzl", "python")

pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")

# Ensure there is a `pip` hub for each Python version
# The project performs a `select` to grab the correct packages for the executing Python
# This is important to provide Python package aliases downstream such as `//pre-commit:pkg`
[
    (
        python.toolchain(
            # TODO: remove this when `ignore_root_user_error` is hermetic
            # https://github.com/bazelbuild/rules_python/issues/2016
            ignore_root_user_error = True,
            python_version = version,
        ),
        pip.parse(
            experimental_index_url = "https://pypi.org/simple",
            hub_name = "pre-commit",
            python_version = version,
            requirements_lock = "//pre-commit/requirements:lock.txt",
        ),
        pip.parse(
            experimental_index_url = "https://pypi.org/simple",
            hub_name = "pre-commit-hook",
            python_version = version,
            requirements_by_platform = {
                "//pre-commit/hook/requirements:lock.txt": "linux_*,osx_*,windows_*",
            },
        ),
        pip.parse(
            experimental_index_url = "https://pypi.org/simple",
            hub_name = "pre-commit-config",
            python_version = version,
            requirements_lock = "//pre-commit/config/requirements:lock.txt",
        ),
    )
    for version in ("3.10", "3.11", "3.12", "3.13")
]

python.defaults(python_version = "3.13")

use_repo(
    pip,
    config = "pre-commit-config",
    hook = "pre-commit-hook",
    pkg = "pre-commit",
)

download_file = use_repo_rule("@download_utils//download/file:defs.bzl", "download_file")

download_archive = use_repo_rule("@download_utils//download/archive:defs.bzl", "download_archive")

# Bazelisk binaries
[
    download_file(
        name = "bazelisk-{}".format(name),
        executable = True,
        integrity = integrity,
        output = "bazelisk.exe" if ".exe" in suffix else "bazelisk",
        urls = ["https://github.com/bazelbuild/bazelisk/releases/download/v1.25.0/bazelisk-{}".format(suffix)],
    )
    for name, suffix, integrity in (
        ("amd64-linux", "linux-amd64", "sha256-/Y/f9BihdYiHUg+kLafmrjmu/HiM9ef3u422k00nn8Q="),
        ("arm64-linux", "linux-arm64", "sha256-TI2WbkCsLE78x/Glpczu8sCi8WuVfnkfp6hnzOMej8s="),
        ("amd64-macos", "darwin-amd64", "sha256-CvAZ7rZC+nB0RBnQKqMt9V5ueghBBdSfsmgBpmCqVtM="),
        ("arm64-macos", "darwin-arm64", "sha256-sT3YnG7NkJRMo1OfWixxWhj2m3RYh4xHGpAqjkgs60s="),
        ("amd64-windows", "windows-amd64.exe", "sha256-ZBo9/r1xdwNnX5EpF3NcRLRc9jAL/fuSRTfzz7/83ZI="),
        ("arm64-windows", "bazelisk-windows-arm64.exe", "sha256-4FYwZnOIMzRNHbFatBB9L2L4nkphZJ1SF/Bw0l8NyNc="),
    )
]

# Ruff binaries
[
    download_archive(
        name = "ruff-{}".format(name),
        integrity = integrity,
        strip_prefix = "ruff-{}".format(triplet) if ext != ".zip" else "",
        urls = ["https://github.com/astral-sh/ruff/releases/download/0.9.7/ruff-{}{}".format(triplet, ext)],
    )
    for name, triplet, ext, integrity in (
        ("amd64-linux", "x86_64-unknown-linux-musl", ".tar.gz", "sha256-8LfHpa5EZzCsERkEpQTLlnicwcgrmWa1W+3Yim0+wHc="),
        ("arm64-linux", "aarch64-unknown-linux-musl", ".tar.gz", "sha256-uUrZS8DPFKEqcl/PI4PtBHtTcGj0szvwgV6LrzXm7Fw="),
        ("amd64-macos", "x86_64-apple-darwin", ".tar.gz", "sha256-Kg/RLNZtIKiCypcBWe82HV85e5OKWrnXYZ3sDxUVL1M="),
        ("arm64-macos", "aarch64-apple-darwin", ".tar.gz", "sha256-8UQ35xOZ4UMCvfXOkQ49+avJoiP+D/XWsC6wg8Ofows="),
        ("amd64-windows", "x86_64-pc-windows-msvc", ".zip", "sha256-I2xp7VEKMwL0C14Owc3gzHU1FGzTdljm0xaMhelOMIo="),
        ("arm64-windows", "aarch64-pc-windows-msvc", ".zip", "sha256-ckodh0IeEldZ6bfbqxak0QNIks5BgKqvYePrvn5nr6I="),
    )
]
