2022-08-10 03:45:03 +00:00
|
|
|
import zipfile
|
|
|
|
import glob
|
|
|
|
import os
|
|
|
|
|
|
|
|
|
|
|
|
# TODO: should we include .pyc files?
|
|
|
|
# TODO: add urwid source into the repo somewhere
|
|
|
|
|
|
|
|
files = {
|
|
|
|
'__main__.py': 'clients/urwid/main.py',
|
2022-08-10 07:04:40 +00:00
|
|
|
'nntp_client.py': 'clients/nntp_client.py',
|
2022-08-10 03:45:03 +00:00
|
|
|
'urwid': 'env/lib/python3.8/site-packages/urwid/*.py',
|
|
|
|
}
|
|
|
|
|
|
|
|
with open('bbj_demo', 'wb') as f:
|
|
|
|
f.write(b"#!/usr/bin/env python3\n")
|
|
|
|
with zipfile.ZipFile(f, 'w', compression=zipfile.ZIP_DEFLATED) as z:
|
|
|
|
z.comment = b'BBJ'
|
|
|
|
for name, source in files.items():
|
|
|
|
if '*' in source:
|
|
|
|
dirname = name
|
|
|
|
for path in sorted(glob.glob(source)):
|
|
|
|
name = dirname + '/' + os.path.basename(path)
|
|
|
|
z.write(path, name)
|
|
|
|
else:
|
|
|
|
z.write(source, name)
|
|
|
|
try:
|
|
|
|
mask = os.umask(0)
|
|
|
|
os.umask(mask)
|
|
|
|
except OSError:
|
|
|
|
mask = 0
|
|
|
|
os.chmod(z.filename, 0o777&~mask)
|