31 lines
968 B
Python
31 lines
968 B
Python
import argparse
|
|
from dotenv import load_dotenv
|
|
from urllib.parse import urlparse
|
|
import mariadb
|
|
import os
|
|
from importers import get_importers
|
|
|
|
if __name__ == '__main__':
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('--env', '-e', default='../.env.local', help='env file to load DATABASE_URL from')
|
|
subparsers = parser.add_subparsers(dest='game', help='game importer to use', required=True)
|
|
importers = get_importers()
|
|
for name, importer in importers.items():
|
|
importer.register(subparsers.add_parser(name))
|
|
|
|
args = parser.parse_args()
|
|
load_dotenv(args.env)
|
|
parsed = urlparse(os.getenv('DATABASE_URL'))
|
|
conn = mariadb.connect(
|
|
user=parsed.username,
|
|
password=parsed.password,
|
|
host=parsed.hostname,
|
|
port=parsed.port or 3306,
|
|
database=parsed.path[1:]
|
|
)
|
|
|
|
importer = importers[args.game](conn=conn, **vars(args))
|
|
importer.do_import()
|
|
conn.commit()
|
|
conn.close()
|