-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.py
69 lines (52 loc) · 1.4 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import os
import random
import shutil
import string
import sys
import zipfile
# リリース用のzipを作るスクリプト
file_list = (
"LICENSE",
"README.md",
"__init__.py",
"lib",
)
ignores = shutil.ignore_patterns(
"__pycache__",
"*.pyc"
)
# 引数
args = sys.argv
def random_name(n: int) -> str:
return "".join(random.choices(string.ascii_letters + string.digits, k=n))
def make_zip(org_name: str, file_list: tuple, prefix: str):
zip_name: str = org_name+"_"+prefix
zip_dir = "./"+zip_name
zip_path = "./" + zip_name + ".zip"
print(zip_path)
os.mkdir(zip_name)
for s in file_list:
_path = "./"+s
if os.path.isdir(_path):
shutil.copytree(_path, zip_dir+"/"+_path, ignore=ignores)
else:
shutil.copy(_path, zip_dir)
zp = zipfile.ZipFile(zip_path, mode="w", compression=zipfile.ZIP_DEFLATED)
for dirname, subdirs, filenames in os.walk(zip_dir):
for filename in filenames:
zp.write(os.path.join(dirname, filename))
zp.close
shutil.rmtree(zip_dir)
def main(args):
arg_len = len(args)
org_name: str = "blender_gpencil_stroke_normalizer"
prefix: str = ""
if arg_len == 1:
prefix = random_name(4)
elif arg_len == 2:
prefix = args[1]
else:
org_name = args[1]
prefix = args[2]
make_zip(org_name, file_list, prefix)
main(args)