cleaing up init script to simplify sql script generation

This commit is contained in:
spinach 2025-02-24 03:47:07 -05:00
parent 9181f71a96
commit 95750a7120

82
init.py
View File

@ -65,14 +65,18 @@ def prompt_fill(key):
def sql_init(password): def sql_init(password):
print(f"CREATE USER 'root'@'localhost' IDENTIFIED BY 'local';") sql = f"CREATE USER 'root'@'localhost' IDENTIFIED BY 'local';\n"
print(f"GRANT ALL PRIVILEGES ON *.* TO 'root'@'%%';") sql += f"GRANT ALL PRIVILEGES ON *.* TO 'root'@'%%';\n"
return sql
def sql_add_user(username, password, *databases): def sql_add_user(username, password, *databases):
print(f"CREATE USER {username} IDENTIFIED BY {password};") sql = f"CREATE USER {username} IDENTIFIED BY '{password}';\n"
for db in databases: for db in databases:
print(f"CREATE DATABASE {db};") sql += f"CREATE DATABASE {db};\n"
print(f"GRANT ALL PRIVILEGES ON {db} TO {username};") sql += f"GRANT ALL PRIVILEGES ON {db} TO {username};\n"
return sql
def parse_env(service): def parse_env(service):
""" """
@ -115,43 +119,51 @@ def gen_env(kv):
return env return env
def mariadb_init(): def service_init(service):
if os.path.isfile("mariadb/.env"): priv = f"{service}/.env"
print("mariadb/.env already exists... skipping") sql = ""
return
c = parse_env("mariadb") # prevent overwrite
if os.path.isfile(priv):
print(f"{priv} already exists... skipping")
return sql
c = parse_env(service)
if service == "mariadb":
password = c["MYSQL_ROOT_PASSWORD"] password = c["MYSQL_ROOT_PASSWORD"]
sql = sql_init(password)
sql_init(password) elif service == "gitea":
gen_env(c)
def gitea_init():
if os.path.isfile("gitea/.env"):
print("gitea/.env already exists... skipping")
return
c = parse_env("gitea")
username = c["GITEA__database__USER"] username = c["GITEA__database__USER"]
password = c["GITEA__database__PASSWD"] password = c["GITEA__database__PASSWD"]
db = c["GITEA__database__NAME"] db = c["GITEA__database__NAME"]
sql = sql_add_user(username, password, db)
sql_add_user(username, password, db) elif service == "seafile":
env = gen_env(c)
f = open("gitea/.env", 'w')
f.write(env)
f.close()
def seafile_init():
c = parse_env("seafile")
username = c["SEAFILE_MYSQL_DB_USER"] username = c["SEAFILE_MYSQL_DB_USER"]
password = c["SEAFILE_MYSQL_DB_PASSWORD"] password = c["SEAFILE_MYSQL_DB_PASSWORD"]
dbs = ["ccnet_db", "seafile_db", "seahub_db"] dbs = ["ccnet_db", "seafile_db", "seahub_db"]
sql = sql_add_user(username, password, *dbs)
else:
print(f"service {service} not regonized!")
os.exit(1)
sql_add_user(username, password, *dbs) env = gen_env(c)
# seafile_init() f = open(priv, 'w')
mariadb_init() f.write(env)
gitea_init() f.close()
seafile_init()
return sql
sql=""
for service in ["mariadb", "gitea", "seafile"]:
sql += service_init(service)
# attempt to write sql init script based on parameters
if os.path.isfile("priv/init.sql"):
print("priv/init.sql already exists... skipping")
exit
f = open("priv/init.sql", 'w')
f.write(sql)
f.close()