aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts/packages/self_extract_binary.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/packages/self_extract_binary.bzl')
-rw-r--r--scripts/packages/self_extract_binary.bzl81
1 files changed, 42 insertions, 39 deletions
diff --git a/scripts/packages/self_extract_binary.bzl b/scripts/packages/self_extract_binary.bzl
index 75f19279c3..24e3ddf2b5 100644
--- a/scripts/packages/self_extract_binary.bzl
+++ b/scripts/packages/self_extract_binary.bzl
@@ -33,45 +33,48 @@ and a ZIP footer with the following entries:
"""
def _self_extract_binary(ctx):
- """Implementation for the self_extract_binary rule."""
- # This is a bit complex for stripping out timestamps
- zip_artifact = ctx.new_file(ctx.label.name + ".zip")
- touch_empty_files = [
- "mkdir -p $(dirname ${tmpdir}/%s); touch ${tmpdir}/%s" % (f, f)
- for f in ctx.attr.empty_files
- ]
- cp_resources = [
- ("mkdir -p $(dirname ${tmpdir}/%s)\n" % r.short_path +
- "cp %s ${tmpdir}/%s" % (r.path, r.short_path))
- for r in ctx.files.resources
- ]
- cp_flatten_resources = [
- "cp %s ${tmpdir}/%s" % (r.path, r.basename)
- for r in ctx.files.flatten_resources
- ]
- ctx.action(
- inputs = ctx.files.resources + ctx.files.flatten_resources,
- outputs = [zip_artifact],
- command = "\n".join([
- "tmpdir=$(mktemp -d ${TMPDIR:-/tmp}/tmp.XXXXXXXX)",
- "trap \"rm -fr ${tmpdir}\" EXIT"
- ] + touch_empty_files + cp_resources + cp_flatten_resources + [
- "find ${tmpdir} -exec touch -t 198001010000.00 '{}' ';'",
- "(d=${PWD}; cd ${tmpdir}; zip -rq ${d}/%s *)" % zip_artifact.path,
- ]),
- mnemonic = "ZipBin",
- )
- ctx.action(
- inputs = [ctx.file.launcher, zip_artifact],
- outputs = [ctx.outputs.executable],
- command = "\n".join([
- "cat %s %s > %s" % (ctx.file.launcher.path,
- zip_artifact.path,
- ctx.outputs.executable.path),
- "zip -qA %s" % ctx.outputs.executable.path
- ]),
- mnemonic = "BuildSelfExtractable",
- )
+ """Implementation for the self_extract_binary rule."""
+
+ # This is a bit complex for stripping out timestamps
+ zip_artifact = ctx.new_file(ctx.label.name + ".zip")
+ touch_empty_files = [
+ "mkdir -p $(dirname ${tmpdir}/%s); touch ${tmpdir}/%s" % (f, f)
+ for f in ctx.attr.empty_files
+ ]
+ cp_resources = [
+ ("mkdir -p $(dirname ${tmpdir}/%s)\n" % r.short_path +
+ "cp %s ${tmpdir}/%s" % (r.path, r.short_path))
+ for r in ctx.files.resources
+ ]
+ cp_flatten_resources = [
+ "cp %s ${tmpdir}/%s" % (r.path, r.basename)
+ for r in ctx.files.flatten_resources
+ ]
+ ctx.action(
+ inputs = ctx.files.resources + ctx.files.flatten_resources,
+ outputs = [zip_artifact],
+ command = "\n".join([
+ "tmpdir=$(mktemp -d ${TMPDIR:-/tmp}/tmp.XXXXXXXX)",
+ "trap \"rm -fr ${tmpdir}\" EXIT",
+ ] + touch_empty_files + cp_resources + cp_flatten_resources + [
+ "find ${tmpdir} -exec touch -t 198001010000.00 '{}' ';'",
+ "(d=${PWD}; cd ${tmpdir}; zip -rq ${d}/%s *)" % zip_artifact.path,
+ ]),
+ mnemonic = "ZipBin",
+ )
+ ctx.action(
+ inputs = [ctx.file.launcher, zip_artifact],
+ outputs = [ctx.outputs.executable],
+ command = "\n".join([
+ "cat %s %s > %s" % (
+ ctx.file.launcher.path,
+ zip_artifact.path,
+ ctx.outputs.executable.path,
+ ),
+ "zip -qA %s" % ctx.outputs.executable.path,
+ ]),
+ mnemonic = "BuildSelfExtractable",
+ )
self_extract_binary = rule(
_self_extract_binary,