81 lines
2.7 KiB
Python
81 lines
2.7 KiB
Python
print(colored(colorama.Fore.GREEN,"Reading config..."))
|
|
config = configparser.ConfigParser()
|
|
config.optionxform = str
|
|
config.read(p(omlPath,"config.ini"))
|
|
|
|
global lv
|
|
|
|
lv = config["default"]
|
|
for var in lv:
|
|
glbs = globals().copy()
|
|
for glb in glbs:
|
|
lv[var] = lv[var].replace("$+" +glb+ "$",str(glbs[glb]))
|
|
|
|
lcs = locals().copy()
|
|
for lc in lcs:
|
|
lv[var] = lv[var].replace("$" +lc+ "$",str(lcs[lc]))
|
|
|
|
if lv["osName"] == "":
|
|
lv["osName"] = platform.system().lower()
|
|
if lv["osName"] == "darwin": lv["osName"] = "macos"
|
|
|
|
if lv["osVersion"] == "":
|
|
lv["osVersion"] = platform.version()
|
|
|
|
print("")
|
|
for setting in lv:
|
|
print(colored(colorama.Fore.BLACK,setting+ "=" +str(lv[setting])))
|
|
|
|
if len(sys.argv) > 1:
|
|
for arg in sys.argv[1:]:
|
|
if arg.startswith("-"): continue
|
|
argSplit = arg.split("=",1)
|
|
if len(argSplit) > 1:
|
|
lv[argSplit[0]] = argSplit[1]
|
|
else:
|
|
lv[argSplit[0]] = True
|
|
|
|
if not lv["osName"] in ["windows","linux","macos"]:
|
|
print(colored(colorama.Fore.YELLOW,"\nWarning, unsupported OS detected: '" +lv["osName"]+ "'. Needs to be either windows, linux or macos. Define it with osName=name in the config."),file=sys.stderr)
|
|
print(colored(colorama.Fore.MAGENTA,"Falling back to assuming Linux."))
|
|
lv["osName"] = "linux"
|
|
|
|
if not "-downloadonly" in sys.argv:
|
|
print(colored(colorama.Fore.GREEN,"Checking for Java..."))
|
|
global javaExe
|
|
javaExe = whereis(lv["java"])
|
|
if javaExe == None:
|
|
print(colored(colorama.Fore.RED,"Java wasn't found at '" +lv["java"]+ "'. Please configure java in config.ini."))
|
|
sys.exit(1)
|
|
|
|
if lv["jvmArch"] == "":
|
|
print(colored(colorama.Fore.GREEN,"Querying JVM architecture... "),end="")
|
|
try:
|
|
if lv["osName"] != "windows":
|
|
with open(javaExe,"rb") as jh:
|
|
jh.seek(4)
|
|
if int.from_bytes(jh.read(1),"little") == 1:
|
|
lv["jvmArch"] = "x86"
|
|
print("x86")
|
|
else:
|
|
lv["jvmArch"] = "amd64"
|
|
print("Not x86, assuming amd64")
|
|
else:
|
|
with open(javaExe,"rb") as jh:
|
|
jh.seek(60)
|
|
jh.seek(int.from_bytes(jh.read(2),"little") + 4)
|
|
if int.from_bytes(jh.read(2),"little") == 332:
|
|
lv["jvmArch"] = "x86"
|
|
print("x86")
|
|
else:
|
|
lv["jvmArch"] = "amd64"
|
|
print("Not x86, assuming amd64")
|
|
except:
|
|
print(colored(colorama.Fore.YELLOW,"\nWarning, could not query JVM architecture. Needs to be either amd64 or x86. Define it with jvmArch=arch in the config."),file=sys.stderr)
|
|
print(colored(colorama.Fore.MAGENTA,"Assuming amd64."))
|
|
raise
|
|
|
|
print("")
|
|
if not "version" in lv: lv["version"] = input("Version ID: ")
|
|
if "-downloadonly" in sys.argv: lv["name"] = "Player"
|
|
if not "name" in lv: lv["name"] = input("Player name: ") |