From 8433951546863cea8e79025f160610bc4b7f037a Mon Sep 17 00:00:00 2001 From: Hector van der Aa Date: Wed, 29 Jul 2026 18:37:01 +0100 Subject: [PATCH] Added failed umount force retry --- main.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/main.py b/main.py index a2607d9..f2438f1 100644 --- a/main.py +++ b/main.py @@ -38,6 +38,7 @@ class AppState: diskEventQueue: Queue[DiskEvent] = Queue() diskState: DiskState = "disconnected" config = Config() + failedUmount: bool = False def saveConfig(config: Config, path: Path) -> None: @@ -174,19 +175,31 @@ def mountDisk(state: AppState) -> None: def unmountDisk(state: AppState) -> None: - try: + if not state.failedUmount: + try: + subprocess.run( + [ + "umount", + f"/mnt/{state.config.diskSerial}", + ], + check=True, + ) + print("unmounting disk") + except subprocess.CalledProcessError: + state.failedUmount = True + else: + state.diskState = "disconnected" + else: subprocess.run( [ "umount", + "-f", f"/mnt/{state.config.diskSerial}", ], - check=True, + check=False, ) - print("unmounting disk") - except subprocess.CalledProcessError: - pass - else: state.diskState = "disconnected" + state.failedUmount = False def main() -> None: