mclog2psql: add option for port, take password file

This commit is contained in:
2025-08-22 18:40:29 +02:00
parent f56ff498db
commit 3ef9c01f2f

View File

@@ -68,6 +68,7 @@ def conjoin_sessions(event_log: list[LoginLogoutEvent]) -> list[LoginSpan]:
def insert_sessions_into_db( def insert_sessions_into_db(
session_log: list[LoginSpan], session_log: list[LoginSpan],
host: str, host: str,
port: int,
database: str, database: str,
username: str, username: str,
password: str | None, password: str | None,
@@ -77,6 +78,7 @@ def insert_sessions_into_db(
conn = psycopg2.connect( conn = psycopg2.connect(
host=host, host=host,
database=database, database=database,
port=port,
user=username, user=username,
password=password, password=password,
) )
@@ -110,6 +112,7 @@ class Arguments:
dir: Path dir: Path
password: str | None password: str | None
host: str = "localhost" host: str = "localhost"
port: int = 5432
database: str = "minecraft_heatmap" database: str = "minecraft_heatmap"
username: str = "minecraft_heatmap" username: str = "minecraft_heatmap"
@@ -150,6 +153,15 @@ def parse_args():
help="Database host (default: localhost).", help="Database host (default: localhost).",
) )
parser.add_argument(
"--port",
type=int,
default=5432,
action=EnvDefault,
envvar="MINECRAFT_HEATMAP_DB_PORT",
help="Database port (default: 5432).",
)
parser.add_argument( parser.add_argument(
"--database", "--database",
type=str, type=str,
@@ -169,13 +181,13 @@ def parse_args():
) )
parser.add_argument( parser.add_argument(
"--password", "--password-file",
type=str, type=str,
required=False, required=False,
default=None, default=None,
action=EnvDefault, action=EnvDefault,
envvar="MINECRAFT_HEATMAP_DB_PASSWORD", envvar="MINECRAFT_HEATMAP_DB_PASSWORD_FILE",
help="Database password (default: None).", help="Database password file (default: None).",
) )
return parser.parse_args() return parser.parse_args()
@@ -196,10 +208,16 @@ if __name__ == "__main__":
print(f"Found {len(session_log)} login sessions.") print(f"Found {len(session_log)} login sessions.")
password = None
if args.password_file:
with open(args.password_file, "r") as f:
password = f.read().strip()
insert_sessions_into_db( insert_sessions_into_db(
session_log, session_log,
args.host, args.host,
args.port,
args.database, args.database,
args.username, args.username,
args.password, password,
) )