offline-minecraft-launcher/oml/stages/config.py

81 lines
2.7 KiB
Python
Raw Normal View History

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"]:
2022-05-18 00:29:33 +00:00
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: ")