Added automatic disk mounting

This commit is contained in:
2026-07-29 18:00:28 +01:00
parent 7c1e968a16
commit 2c34924504

33
main.py
View File

@@ -2,6 +2,7 @@ from functools import partial
import json import json
from pathlib import Path from pathlib import Path
from queue import Empty, Queue from queue import Empty, Queue
import subprocess
from time import sleep from time import sleep
from typing import Literal from typing import Literal
import pyudev import pyudev
@@ -140,6 +141,29 @@ def findDiskNode(serial: str) -> str | None:
return 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: def main() -> None:
try: try:
state = AppState() state = AppState()
@@ -175,7 +199,14 @@ def main() -> None:
state.config.diskSerial = event.serial state.config.diskSerial = event.serial
saveConfig(state.config, Path("config.json")) saveConfig(state.config, Path("config.json"))
print(findDiskNode(state.config.diskSerial)) 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: except Empty:
sleep(1) sleep(1)