Added automatic disk mounting
This commit is contained in:
33
main.py
33
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)
|
||||
|
||||
Reference in New Issue
Block a user