-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.py
32 lines (29 loc) · 1.35 KB
/
build.py
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
27
28
29
30
31
import os
import sys
import glob
import zipfile
out_dir = os.path.join("dist")
os.makedirs(out_dir, exist_ok=True)
out_zip_file = os.path.join(out_dir, f"norobot_{sys.argv[1]}.zip")
if os.path.isfile(out_zip_file):
ans = input(f"Overwrite file {out_zip_file} (y/yes)?\n")
if ans in ('y', 'yes'):
os.remove(out_zip_file)
else:
sys.exit(1)
with zipfile.ZipFile(out_zip_file, 'x', compression=zipfile.ZIP_DEFLATED) as myzip:
# ZipFile.write(filename, arcname=None, compress_type=None, compresslevel=None)
# Write the file named filename to the archive, giving it the archive
# name arcname (by default, this will be the same as filename, but
# without a drive letter and with leading path separators removed)
# relative paths given will have the same path in the archive even paths including ..
# abspaths have the drive letter removed
for gl in ["firefox/*.js", "firefox/*.html", "firefox/*.json",
# *.* doesn't match files starting with a '.'
"firefox/*.css", "firefox/ico/*.*"]:
for fn in glob.iglob(gl):
# fn is relative!!
print("Added:", fn, end=' ')
arch_fn = os.path.relpath(os.path.normpath(fn), start="firefox")
print("as", arch_fn)
myzip.write(fn, arch_fn)