Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mikf
GitHub Repository: mikf/gallery-dl
Path: blob/master/scripts/pyinstaller.py
5457 views
1
#!/usr/bin/env python3
2
# -*- coding: utf-8 -*-
3
4
"""Build a standalone executable using PyInstaller"""
5
6
import argparse
7
import util
8
import sys
9
10
11
def main():
12
parser = argparse.ArgumentParser()
13
parser.add_argument("-o", "--os")
14
parser.add_argument("-a", "--arch")
15
parser.add_argument("-l", "--label")
16
parser.add_argument("-e", "--extension")
17
parser.add_argument("-p", "--print", action="store_true")
18
args = parser.parse_args()
19
20
if args.label:
21
label = args.label
22
else:
23
label = ""
24
if args.os:
25
os = args.os.partition("-")[0].lower()
26
if os == "ubuntu":
27
os = "linux"
28
label += os
29
if args.arch == "x86":
30
label += "_x86"
31
32
if args.print:
33
return print(label)
34
35
name = "gallery-dl"
36
if label:
37
name = "{}_{}".format(name, label)
38
if args.extension:
39
name = "{}.{}".format(name, args.extension.lower())
40
41
import PyInstaller.__main__
42
return PyInstaller.__main__.run([
43
"--onefile",
44
"--console",
45
"--name", name,
46
47
# https://github.com/pyinstaller/pyinstaller/issues/9149
48
"--exclude-module", "pkg_resources",
49
50
"--additional-hooks-dir", util.path("scripts"),
51
"--distpath", util.path("dist"),
52
"--workpath", util.path("build"),
53
"--specpath", util.path("build"),
54
util.path("gallery_dl", "__main__.py"),
55
])
56
57
58
if __name__ == "__main__":
59
sys.exit(main())
60
61