forked from Amourspirit/python_libre_pythonista_ext
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmake.py
More file actions
118 lines (97 loc) · 2.93 KB
/
Copy pathmake.py
File metadata and controls
118 lines (97 loc) · 2.93 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/usr/bin/env python
from __future__ import annotations
import sys
import datetime
import argparse
from src.build import Build
from src.build_args import BuildArgs
# region Args Parse
# region create parser
def _create_parser(name: str) -> argparse.ArgumentParser:
return argparse.ArgumentParser(description=name)
# endregion create parser
# region commands
def _args_process_cmd(args: argparse.Namespace) -> None:
if args.command == "build":
_args_action_build(args=args)
# endregion commands
def _args_action_build(args: argparse.Namespace) -> None:
builder = Build(
args=BuildArgs(
clean=args.clean,
oxt_src=args.oxt_source,
process_tokens=args.process_tokens,
make_dist=args.make_dist,
pre_install_pure_packages=args.process_pure,
compile_idl=args.compile_idl,
)
)
print("Building...", flush=True)
builder.build()
print(f'Build Finished {datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}')
# print the date and time
def _args_add_sub_build(parser: argparse.ArgumentParser) -> None:
build_args = BuildArgs()
parser.add_argument(
"-o",
"--oxt-src",
help=f"oxt source directory name. Default: {build_args.oxt_src}",
action="store_true",
dest="oxt_source",
default=build_args.oxt_src,
)
parser.add_argument(
"-c", "--no-clean", help="Do not clean build folder", action="store_false", dest="clean", default=True
)
parser.add_argument(
"-t",
"--no-token-process",
help="Do not process tokens",
action="store_false",
dest="process_tokens",
default=True,
)
parser.add_argument(
"-p",
"--no-pure-packages",
help="Do not pre-install pure packages",
action="store_false",
dest="process_pure",
default=True,
)
parser.add_argument(
"-i",
"--no-idl",
help="Do not compile idl files",
action="store_false",
dest="compile_idl",
default=True,
)
parser.add_argument(
"-d", "--no-dist", help="Do not process dist", action="store_false", dest="make_dist", default=True
)
# endregion Args Parse
# region Main
def _main() -> int:
# for debugging
sys.argv.extend(["build"])
return main()
def main() -> int:
"""The main function."""
parser = _create_parser("main")
subparser = parser.add_subparsers(dest="command")
build_subparser = subparser.add_parser(
name="build", help=f"Builds the project. Default: clean={BuildArgs.clean}, oxt_src={BuildArgs.oxt_src}"
)
_args_add_sub_build(parser=build_subparser)
# region Read Args
args = parser.parse_args()
# endregion Read Args
# print(args)
# return 0
_args_process_cmd(args=args)
return 0
# endregion Main
if __name__ == "__main__":
# _touch()
raise SystemExit(main())