From 817b89767aa31b3b2847203b27151044f5d323f6 Mon Sep 17 00:00:00 2001
From: Mary-nyan <mary@mary.zone>
Date: Thu, 1 Dec 2022 14:08:43 +0100
Subject: infra: Add distribution files for macOS (#3934)

This upstream macOS packing and distribution files
---
 distribution/misc/add_tar_exec.py | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 distribution/misc/add_tar_exec.py

(limited to 'distribution/misc/add_tar_exec.py')

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))
-- 
cgit v1.2.3-70-g09d2