aboutsummaryrefslogtreecommitdiff
path: root/distribution/misc/add_tar_exec.py
diff options
context:
space:
mode:
authorMary-nyan <mary@mary.zone>2022-12-01 14:08:43 +0100
committerGitHub <noreply@github.com>2022-12-01 14:08:43 +0100
commit817b89767aa31b3b2847203b27151044f5d323f6 (patch)
tree7b142f86e035ccf3bbf3a8635d41563a7d418d9a /distribution/misc/add_tar_exec.py
parent3fb583c98c39da58f0752c652ca60be87ff1f566 (diff)
infra: Add distribution files for macOS (#3934)1.1.404
This upstream macOS packing and distribution files
Diffstat (limited to 'distribution/misc/add_tar_exec.py')
-rw-r--r--distribution/misc/add_tar_exec.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/distribution/misc/add_tar_exec.py b/distribution/misc/add_tar_exec.py
new file mode 100644
index 00000000..fe659c16
--- /dev/null
+++ b/distribution/misc/add_tar_exec.py
@@ -0,0 +1,24 @@
+import argparse
+from io import BytesIO
+import tarfile
+
+parser = argparse.ArgumentParser(
+ description="Add the main binary to a tar and force it to be executable"
+)
+parser.add_argument("input_tar_file", help="input tar file")
+parser.add_argument("main_binary_path", help="Main executable path")
+parser.add_argument("main_binary_tar_path", help="Main executable tar path")
+
+args = parser.parse_args()
+input_tar_file = args.input_tar_file
+main_binary_path = args.main_binary_path
+main_binary_tar_path = args.main_binary_tar_path
+
+with open(main_binary_path, "rb") as f:
+ with tarfile.open(input_tar_file, "a") as tar:
+ data = f.read()
+ tar_info = tarfile.TarInfo(main_binary_tar_path)
+ tar_info.mode = 0o755
+ tar_info.size = len(data)
+
+ tar.addfile(tar_info, BytesIO(data))