Skip to content

Commit 1fbeff7

Browse files
authored
Merge pull request #110 from jumpstarter-dev/dutlink-storage
dutlink: use better method for detecting storage media presence
2 parents e00148f + d4c2361 commit 1fbeff7

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

contrib/dutlink/jumpstarter_driver_dutlink/driver.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import os
44
from collections.abc import AsyncGenerator
55
from dataclasses import dataclass, field
6-
from pathlib import Path
76

87
import pyudev
98
import usb.core
@@ -94,13 +93,13 @@ async def write(self, src: str):
9493
with fail_after(20):
9594
while True:
9695
if os.path.exists(self.storage_device):
96+
# https://stackoverflow.com/a/2774125
97+
fd = os.open(self.storage_device, os.O_WRONLY)
9798
try:
98-
Path(self.storage_device).write_bytes(b"\0")
99-
except OSError:
100-
pass # wait for device ready
101-
else:
102-
break
103-
99+
if os.lseek(fd, 0, os.SEEK_END) > 0:
100+
break
101+
finally:
102+
os.close(fd)
104103
await sleep(1)
105104

106105
async with await FileWriteStream.from_path(self.storage_device) as stream:

0 commit comments

Comments
 (0)