1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
#!/usr/bin/env python3
import argparse
import pathlib
import subprocess
parser = argparse.ArgumentParser()
parser.add_argument('--directory', required=True)
parser.add_argument('--executable', required=True)
parser.add_argument('--python', default='/usr/bin/env python3')
args = parser.parse_args()
directory = pathlib.Path(args.directory)
executable = pathlib.Path(args.executable)
assert directory.is_dir()
header = f'#!{args.python}\n'.encode()
binary = subprocess.run(
['zip', '-', '--recurse-paths', '-9', '.', ],
cwd=directory, stdout=subprocess.PIPE
).stdout
executable.write_bytes(header + binary)
executable.chmod(0o755)
|