mclog2psql: add option for port, take password file
This commit is contained in:
@@ -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,
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user