blob: e0ea9ce5f89527d4a971d76b52ef1ba86bba5c89 [file] [log] [blame]
"""A rule to textually replace {{VERSION}} with the Rust release version in files."""
load("//:protobuf_version.bzl", "PROTOBUF_RUST_VERSION")
# Temporarily append a -release suffix to non-RC versions until we consider the
# release stable. Since "release" lexicographically comes after "rc", Cargo
# will understand that 4.31.0-release is newer than all 4.31.0-rc.N releases.
PROTOBUF_RUST_VERSION_SUFFIX = "-release" if PROTOBUF_RUST_VERSION.find("-rc") == -1 else ""
def substitute_rust_release_version(src, out, name = None):
version = PROTOBUF_RUST_VERSION + PROTOBUF_RUST_VERSION_SUFFIX
native.genrule(
name = name or ("gen_%s" % out),
srcs = [src],
outs = [out],
cmd = "cat $(SRCS) | sed -e 's/{{VERSION}}/{0}/g' > $(OUTS)".format(version),
)