|  | package(default_visibility = ["//scripts/packages:__subpackages__"]) | 
|  |  | 
|  | filegroup( | 
|  | name = "srcs", | 
|  | srcs = glob(["**"]) + [ | 
|  | "//scripts/packages/debian:srcs", | 
|  | "//scripts/packages/fedora:srcs", | 
|  | ], | 
|  | visibility = [ | 
|  | "//scripts:__pkg__", | 
|  | "//scripts/packages:__subpackages__", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | filegroup( | 
|  | name = "packages", | 
|  | srcs = select({ | 
|  | "//src/conditions:windows": [ | 
|  | ":zip-bazel-exe", | 
|  | ":zip-bazel-exe_with_jdk", | 
|  | ], | 
|  | "//src/conditions:windows_msvc": [], | 
|  | "//src/conditions:freebsd": [], | 
|  | "//src/conditions:darwin": [ | 
|  | ":with-jdk/install.sh", | 
|  | ":without-jdk/install.sh", | 
|  | ":generate-package-info", | 
|  | ], | 
|  | "//src/conditions:darwin_x86_64": [ | 
|  | ":with-jdk/install.sh", | 
|  | ":without-jdk/install.sh", | 
|  | ":generate-package-info", | 
|  | ], | 
|  | "//conditions:default": [ | 
|  | ":with-jdk/install.sh", | 
|  | ":without-jdk/install.sh", | 
|  | ":generate-package-info", | 
|  | "//:bazel-distfile", | 
|  | "//scripts/packages/debian:bazel-debian", | 
|  | "//scripts/packages/debian:bazel-debian-src", | 
|  | ], | 
|  | }), | 
|  | ) | 
|  |  | 
|  | sh_binary( | 
|  | name = "package-info-generator", | 
|  | srcs = ["package_info_generator.sh"], | 
|  | ) | 
|  |  | 
|  | genrule( | 
|  | name = "generate-package-info", | 
|  | outs = ["README.md"], | 
|  | cmd = "$(location :package-info-generator) $$(find . -name '*status*.txt') >$@", | 
|  | stamp = 1, | 
|  | tools = [":package-info-generator"], | 
|  | ) | 
|  |  | 
|  | [genrule( | 
|  | name = "zip-bazel-exe" + suffix, | 
|  | srcs = ["//src:bazel%s.exe" % suffix], | 
|  | outs = ["bazel%s.zip" % suffix], | 
|  | cmd = "\n".join([ | 
|  | "tmpdir=$$(mktemp -d $${TMPDIR:-/tmp}/tmp.XXXXXXXX)", | 
|  | "trap \"rm -fr $${tmpdir}\" EXIT", | 
|  | "mv $(SRCS) $${tmpdir}/bazel.exe", | 
|  | "touch -t 198001010000.00 $${tmpdir}/bazel.exe", | 
|  | "zip -jq $@ $${tmpdir}/bazel.exe", | 
|  | ]), | 
|  | ) for suffix in [ | 
|  | "", | 
|  | "_with_jdk", | 
|  | ]] | 
|  |  | 
|  | genrule( | 
|  | name = "generate-launcher", | 
|  | srcs = [ | 
|  | "template_bin.sh", | 
|  | ":README.md", | 
|  | ], | 
|  | outs = ["launcher_bin.sh"], | 
|  | cmd = """ | 
|  | release_info="$$(cat $(location :README.md))" | 
|  | template="$$(cat $(location template_bin.sh))" | 
|  | echo "$${template//%release_info%/$${release_info}}" >$@ | 
|  | """, | 
|  | ) | 
|  |  | 
|  | genrule( | 
|  | name = "rename-bazel-bin", | 
|  | srcs = ["//src:bazel_with_jdk"], | 
|  | outs = ["with-jdk/bazel-real"], | 
|  | cmd = "mkdir -p $$(dirname $@); cp $< $@", | 
|  | ) | 
|  |  | 
|  | genrule( | 
|  | name = "rename-bazel-bin-without-jdk", | 
|  | srcs = ["//src:bazel"], | 
|  | outs = ["without-jdk/bazel-real"], | 
|  | cmd = "mkdir -p $$(dirname $@); cp $< $@", | 
|  | ) | 
|  |  | 
|  | genrule( | 
|  | name = "bazel-sh-with-jdk", | 
|  | srcs = ["bazel.sh"], | 
|  | outs = ["with-jdk/bazel"], | 
|  | cmd = "mkdir -p $$(dirname $@); cp $< $@", | 
|  | ) | 
|  |  | 
|  | genrule( | 
|  | name = "bazel-sh-without-jdk", | 
|  | srcs = ["bazel.sh"], | 
|  | outs = ["without-jdk/bazel"], | 
|  | cmd = "mkdir -p $$(dirname $@); cp $< $@", | 
|  | ) | 
|  |  | 
|  | load(":self_extract_binary.bzl", "self_extract_binary") | 
|  |  | 
|  | [self_extract_binary( | 
|  | name = "%s/install.sh" % kind, | 
|  | flatten_resources = [ | 
|  | ":%s/bazel-real" % kind, | 
|  | ":%s/bazel" % kind, | 
|  | "//scripts:bash_completion", | 
|  | ], | 
|  | launcher = ":launcher_bin.sh", | 
|  | ) for kind in ("with-jdk", "without-jdk")] | 
|  |  | 
|  | genrule( | 
|  | name = "embedded_label", | 
|  | srcs = [], | 
|  | outs = [ | 
|  | "version.txt", | 
|  | ], | 
|  | cmd = | 
|  | "find -L . -name stable-status.txt -exec cat '{}' ';'" + | 
|  | " | grep EMBED_LABEL | cut -d ' ' -f 2-" + | 
|  | " > $@\n", | 
|  | stamp = 1, | 
|  | ) |