From 2c34924504ae9947009236358170465d3107d7c7 Mon Sep 17 00:00:00 2001 From: Hector van der Aa Date: Wed, 29 Jul 2026 18:00:28 +0100 Subject: [PATCH] Added automatic disk mounting --- main.py | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index 86b65ad..8dc332e 100644 --- a/main.py +++ b/main.py @@ -2,6 +2,7 @@ from functools import partial import json from pathlib import Path from queue import Empty, Queue +import subprocess from time import sleep from typing import Literal import pyudev @@ -140,6 +141,29 @@ def findDiskNode(serial: str) -> str | None: return None +def mountDisk(state: AppState) -> None: + node = findDiskNode(state.config.diskSerial) + try: + subprocess.run( + ["mkdir", "-p", f"/mnt/{state.config.diskSerial}"], + check=True, + ) + subprocess.run( + [ + "mount", + f"{node}1", + f"/mnt/{state.config.diskSerial}", + "-o", + "uid=$UID", + ], + check=True, + ) + except subprocess.CalledProcessError: + pass + else: + state.diskState = "connected" + + def main() -> None: try: state = AppState() @@ -175,7 +199,14 @@ def main() -> None: state.config.diskSerial = event.serial saveConfig(state.config, Path("config.json")) print(findDiskNode(state.config.diskSerial)) - state.diskState = "connected" + mountDisk(state) + + if ( + state.diskState == "disconnected" + and event.event == "connected" + and event.serial == state.config.diskSerial + ): + mountDisk(state) except Empty: sleep(1)