load("@aspect_bazel_lib//lib:copy_to_bin.bzl", "copy_to_bin")
load("@aspect_bazel_lib_host//:defs.bzl", "host")
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
load("@bazel_skylib//rules:write_file.bzl", "write_file")
load("@buildifier_prebuilt//:rules.bzl", "buildifier")
load("@gazelle//:def.bzl", "DEFAULT_LANGUAGES", "gazelle", "gazelle_binary")
load("//lib:diff_test.bzl", "diff_test")
load("//lib:tar.bzl", "mtree_spec")
load("//lib:testing.bzl", "assert_contains")
load("//lib:write_source_files.bzl", "write_source_files")
load("//lib:yq.bzl", "yq")

exports_files([".shellcheckrc"])

# gazelle:prefix github.com/aspect-build/bazel-lib

gazelle_binary(
    name = "gazelle_bin",
    languages = select({
        # TODO: under bzlmod we get go linking errors when adding
        # the skylib gazelle plugin.
        # https://github.com/bazelbuild/rules_go/issues/1877
        "@aspect_bazel_lib//lib:bzlmod": DEFAULT_LANGUAGES,
        "//conditions:default": DEFAULT_LANGUAGES + [
            "@bazel_skylib_gazelle_plugin//bzl",
        ],
    }),
)

gazelle(
    name = "gazelle",
    gazelle = "gazelle_bin",
    mode = "fix",
)

gazelle(
    name = "gazelle.check",
    gazelle = "gazelle_bin",
    mode = "diff",
)

gazelle(
    name = "gazelle_update_repos",
    args = [
        "-build_file_proto_mode=disable_global",
        "-from_file=go.mod",
        "-to_macro=deps.bzl%go_dependencies",
        "-prune",
    ],
    command = "update-repos",
)

buildifier(
    name = "buildifier",
    exclude_patterns = ["./.git/*"],
    lint_mode = "fix",
    mode = "fix",
    tags = ["manual"],  # tag as manual so windows ci does not build it by default
)

buildifier(
    name = "buildifier.check",
    exclude_patterns = ["./.git/*"],
    lint_mode = "warn",
    mode = "diff",
    tags = ["manual"],  # tag as manual so windows ci does not build it by default
)

alias(
    name = "format",
    actual = "//tools/format",
    tags = ["manual"],  # tag as manual so windows ci does not build it by default
)

# write_source_files() to a git ignored subdirectory of the root
genrule(
    name = "write_source_file_root",
    outs = ["write_source_file-root_directory/test.txt"],
    cmd = "mkdir -p $$(dirname $@) && echo 'test' > $@",
    visibility = ["//visibility:private"],
)

write_source_files(
    name = "write_source_file_root-test",
    diff_test = False,
    files = {
        "test-out/dist/write_source_file_root-test/test.txt": ":write_source_file_root",
        "test-out/dist/write_source_file_root-test_b/test.txt": ":write_source_file_root",
    },
)

# Test that yq works in the root package
yq(
    name = "yq_root-test",
    srcs = ["//lib/tests/yq:a.yaml"],
    expression = ".",
)

# Test case: diff_test with a file in a directory prefixed with "external"
# stamped in the root package
write_file(
    name = "file_in_external_prefixed_dir",
    out = "external-dir/foo.txt",
    content = ["foo"],
)

copy_file(
    name = "copy_of_file_in_external_prefixed_dir",
    src = "external-dir/foo.txt",
    out = "foo_copy.txt",
)

diff_test(
    name = "case_file_has_external_prefix",
    file1 = "external-dir/foo.txt",
    file2 = "foo_copy.txt",
)

assert_contains(
    name = "bazel_version_test",
    actual = ".bazelversion",
    expected = str(host.bazel_version),
)

bzl_library(
    name = "deps",
    srcs = ["deps.bzl"],
    visibility = ["//visibility:public"],
    deps = ["@gazelle//:deps"],
)

# Test case for mtree_spec: Ensure that multiple entries at the root directory are handled correctly (bug #851)
# See lib/tests/tar/BUILD.bazel for why this is here.
write_file(
    name = "tar_test13_main",
    out = "13project/__main__.py",
    content = ["__main__.py"],
)

write_file(
    name = "tar_test13_bin",
    out = "13project_bin",
    content = ["project_bin"],
)

mtree_spec(
    name = "tar_test13_mtree_unsorted",
    srcs = [
        ":tar_test13_bin",
        ":tar_test13_main",
    ],
)

# NOTE: On some systems, the mtree_spec output can have a different order.
#       To make the test less brittle, we sort the mtree output and replace the BINDIR with a constant placeholder
genrule(
    name = "tar_test13_mtree",
    srcs = [":tar_test13_mtree_unsorted"],
    outs = ["actual13.mtree"],
    cmd = "sort $< | sed 's#$(BINDIR)#{BINDIR}#' >$@",
)

diff_test(
    name = "tar_test13",
    file1 = "tar_test13_mtree",
    file2 = "//lib/tests/tar:expected13.mtree",
)

# Place the .vale.ini file in bazel-bin so the relative path it contains
# StylesPath = tools/lint/vale
# will work when it's run as an action.
copy_to_bin(
    name = ".vale_ini",
    srcs = [".vale.ini"],
    visibility = ["//visibility:public"],
)

filegroup(
    name = "markdown_files",
    srcs = glob(["*.md"]),
    tags = ["markdown"],
)
