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