"""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), )