labyrinth-cs-proj/starter.py

87 lines
2.4 KiB
Python
Raw Normal View History

import os
import pickle
import subprocess
import sys
import maze.modules.PlayerBase_func as player
2022-11-30 12:57:18 +00:00
from maze.modules import bruh
2022-11-22 10:35:23 +00:00
user = password = None
2022-11-30 15:57:28 +00:00
"""Gets mysql pass and username"""
with open("credentials.pickle", "rb") as f:
try:
while True:
d = pickle.load(f)
if d["credtype"] == "mysql":
user = d["user"]
password = d["pass"]
break
2022-11-23 18:03:16 +00:00
except:
user = password = None
def getcreds():
2022-11-30 15:57:28 +00:00
"""Checks mysql creds"""
2022-11-22 10:35:23 +00:00
if user:
return user, password
else:
print(
"""MySQL username or password not initialised. Defaulting to 'root' and ''.
Run 'python starter.py initsql' to initialise credentials of your choice. """
)
with open("credentials.pickle", "rb+") as f:
try:
while True:
pos = f.tell()
d = pickle.load(f)
if d["credtype"] == "mysql":
d["user"] = "root"
d["pass"] = ""
f.seek(pos)
pickle.dump(d, f)
2022-11-23 18:03:16 +00:00
except:
pass
return None, None
2022-11-02 20:02:13 +00:00
if len(sys.argv) == 1:
2022-11-30 15:57:28 +00:00
"""Called with no arguments"""
getcreds()
2022-11-27 17:59:24 +00:00
try:
bruh()
except KeyboardInterrupt:
pass
player.sql.close()
sys.exit()
else:
if sys.argv[1] == "dumpsample":
2022-11-30 15:57:28 +00:00
"""dumps sample database"""
getcreds()
player.databaseinit()
subprocess.call(
2022-11-22 10:35:23 +00:00
f"mysql -u {user} --password={password} -D labyrinth < {os.path.abspath('dbdump.sql')}",
2022-11-23 18:03:16 +00:00
shell=True # ,
# stdout=subprocess.DEVNULL,
# stderr=subprocess.DEVNULL,
)
2022-11-22 10:35:23 +00:00
print("Successfully dumped sample data")
elif sys.argv[1] == "initsql":
2022-11-30 15:57:28 +00:00
"""Stores mysql creds"""
user = input("Enter MySQL username: ")
password = input("Enter MySQL password: ")
with open("credentials.pickle", "rb+") as f:
try:
while True:
pos = f.tell()
d = pickle.load(f)
if d["credtype"] == "mysql":
d["user"] = user
d["pass"] = password
f.seek(pos)
pickle.dump(d, f)
2022-11-23 18:03:16 +00:00
except:
pass
print("Successfully set.")