12345678910111213141516171819202122232425 |
- 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))
|