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
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user