-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
91 lines (69 loc) · 2.06 KB
/
main.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import argparse
import requests
import src.assets as assets
import src.libraries as libraries
import src.launch as launch
import src.java as java
import src.server as server
import src.version as version
from src.util import *
if __name__ == "__main__":
if default():
log("Getting things ready...")
server.default()
log("Setup complete")
exit()
parser = argparse.ArgumentParser(
prog="technoclient-core", # TODO: move backend into `launchcraft` repository
description="TechnoClient core module; the backend stuff that makes everything work"
)
parser.add_argument(
"-p", "--proxy",
type=str
)
parser.add_argument(
"module",
type=str
)
parser.add_argument(
"action",
type=str
)
parser.add_argument(
"version",
type=str,
nargs="?",
default=""
)
args = parser.parse_args()
if args.proxy:
s = requests.Session(proxies={"http": f"socks5h://{args.proxy}", "https": f"socks5h://{args.proxy}", "socks5": f"socks5h://{args.proxy}"})
else:
s = requests.Session()
match args.module:
case "server":
match args.action:
case "refresh":
server.refresh()
case "metadata":
match args.action:
case "update":
version.run(args.version, s)
case "assets":
match args.action:
case "install":
assets.run(args.version, s)
case "libraries":
match args.action:
case "install":
libraries.run(args.version, s)
case "java":
match args.action:
case "install":
java.run(args.version, s)
case "launch":
match args.action:
case "run":
launch.run(args.version, s)
case _:
log("Invalid module specified", "ERROR")