mirror of
https://gitlab.com/kupfer/kupferbootstrap.git
synced 2025-02-23 05:35:44 -05:00
image.py: extract losetup_destroy() for reuse
This commit is contained in:
parent
7f9f326861
commit
216050fbb4
1 changed files with 15 additions and 16 deletions
31
image.py
31
image.py
|
@ -119,6 +119,18 @@ def shrink_fs(loop_device: str, file: str, sector_size: int):
|
||||||
partprobe(loop_device)
|
partprobe(loop_device)
|
||||||
|
|
||||||
|
|
||||||
|
def losetup_destroy(loop_device):
|
||||||
|
logging.debug(f'Destroying loop device {loop_device}')
|
||||||
|
run_root_cmd(
|
||||||
|
[
|
||||||
|
'losetup',
|
||||||
|
'-d',
|
||||||
|
loop_device,
|
||||||
|
],
|
||||||
|
stderr=subprocess.DEVNULL,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_device_and_flavour(profile_name: Optional[str] = None) -> tuple[str, str]:
|
def get_device_and_flavour(profile_name: Optional[str] = None) -> tuple[str, str]:
|
||||||
config.enforce_config_loaded()
|
config.enforce_config_loaded()
|
||||||
profile = config.get_profile(profile_name)
|
profile = config.get_profile(profile_name)
|
||||||
|
@ -150,8 +162,7 @@ def losetup_rootfs_image(image_path: str, sector_size: int) -> str:
|
||||||
image_path,
|
image_path,
|
||||||
])
|
])
|
||||||
if result.returncode != 0:
|
if result.returncode != 0:
|
||||||
logging.fatal(f'Failed to create loop device for {image_path}')
|
raise Exception(f'Failed to create loop device for {image_path}')
|
||||||
exit(1)
|
|
||||||
|
|
||||||
logging.debug(f'Finding loop device for {image_path}')
|
logging.debug(f'Finding loop device for {image_path}')
|
||||||
|
|
||||||
|
@ -159,8 +170,7 @@ def losetup_rootfs_image(image_path: str, sector_size: int) -> str:
|
||||||
if result.returncode != 0:
|
if result.returncode != 0:
|
||||||
print(result.stdout)
|
print(result.stdout)
|
||||||
print(result.stderr)
|
print(result.stderr)
|
||||||
logging.fatal('Failed to list loop devices')
|
raise Exception('Failed to list loop devices')
|
||||||
exit(1)
|
|
||||||
|
|
||||||
data = json.loads(result.stdout.decode('utf-8'))
|
data = json.loads(result.stdout.decode('utf-8'))
|
||||||
loop_device = ''
|
loop_device = ''
|
||||||
|
@ -173,18 +183,7 @@ def losetup_rootfs_image(image_path: str, sector_size: int) -> str:
|
||||||
raise Exception(f'Failed to find loop device for {image_path}')
|
raise Exception(f'Failed to find loop device for {image_path}')
|
||||||
partprobe(loop_device)
|
partprobe(loop_device)
|
||||||
|
|
||||||
def losetup_destroy():
|
atexit.register(losetup_destroy, loop_device)
|
||||||
logging.debug(f'Destroying loop device {loop_device} for {image_path}')
|
|
||||||
run_root_cmd(
|
|
||||||
[
|
|
||||||
'losetup',
|
|
||||||
'-d',
|
|
||||||
loop_device,
|
|
||||||
],
|
|
||||||
stderr=subprocess.DEVNULL,
|
|
||||||
)
|
|
||||||
|
|
||||||
atexit.register(losetup_destroy)
|
|
||||||
|
|
||||||
return loop_device
|
return loop_device
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue