# Protobuf Rust crate packaging for release.

load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
load("@rules_shell//shell:sh_binary.bzl", "sh_binary")

pkg_files(
    name = "license",
    srcs = ["//:LICENSE"],
    visibility = ["//rust/release_crates:__subpackages__"],
)

pkg_tar(
    name = "workspace",
    srcs = [
        ":Cargo.toml",
        "//rust/release_crates/protobuf:protobuf_crate",
        "//rust/release_crates/protobuf_codegen:protobuf_codegen_crate",
        "//rust/release_crates/protobuf_example:protobuf_example_crate",
        "//rust/release_crates/protobuf_macros:protobuf_macros_crate",
        "//rust/release_crates/protobuf_tests:protobuf_tests_crate",
        "//rust/release_crates/protobuf_well_known_types:protobuf_well_known_types_crate",
    ],
    visibility = ["//rust:__pkg__"],
)

# Run the cargo test with only a bundled linux-x86_64 protoc.
sh_binary(
    name = "cargo_test",
    srcs = ["cargo_test.sh"],
    data = [
        ":workspace",
        "//:protoc",
    ],
    tags = ["manual"],
    deps = ["@bazel_tools//tools/bash/runfiles"],
)
