Skip to content

Commit

Permalink
Use ExitStack for MountManagers
Browse files Browse the repository at this point in the history
  • Loading branch information
schaefi committed Jan 31, 2024
1 parent 09e4758 commit c5b3c83
Showing 1 changed file with 26 additions and 26 deletions.
52 changes: 26 additions & 26 deletions kiwi/bootloader/config/systemd_boot.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import os
import glob
from string import Template
from contextlib import ExitStack
from typing import Dict

# project
Expand Down Expand Up @@ -127,34 +128,33 @@ def _create_embedded_fat_efi_image(self, path: str):
['mkdosfs', '-n', 'BOOT', disk.partition_map['efi']]
)
Path.create(f'{self.root_dir}/boot/efi')
efi_mount = MountManager(
device=disk.partition_map['efi'],
mountpoint=f'{self.root_dir}/boot/efi'
)
device_mount = MountManager(
device='/dev',
mountpoint=f'{self.root_dir}/dev'
)
proc_mount = MountManager(
device='/proc',
mountpoint=f'{self.root_dir}/proc'
)
sys_mount = MountManager(
device='/sys',
mountpoint=f'{self.root_dir}/sys'
)
efi_mount.mount()
device_mount.bind_mount()
proc_mount.bind_mount()
sys_mount.bind_mount()
try:
with ExitStack() as stack:
efi_mount = MountManager(
device=disk.partition_map['efi'],
mountpoint=f'{self.root_dir}/boot/efi'
)
stack.push(efi_mount)
device_mount = MountManager(
device='/dev',
mountpoint=f'{self.root_dir}/dev'
)
stack.push(device_mount)
proc_mount = MountManager(
device='/proc',
mountpoint=f'{self.root_dir}/proc'
)
stack.push(proc_mount)
sys_mount = MountManager(
device='/sys',
mountpoint=f'{self.root_dir}/sys'
)
stack.push(sys_mount)
efi_mount.mount()
device_mount.bind_mount()
proc_mount.bind_mount()
sys_mount.bind_mount()
self._run_bootctl(self.root_dir)
self.set_loader_entry(self.root_dir, self.target.live)
finally:
efi_mount.umount()
device_mount.umount()
proc_mount.umount()
sys_mount.umount()
Command.run(
['dd', f'if={disk.partition_map["efi"]}', f'of={path}.img']
)
Expand Down

0 comments on commit c5b3c83

Please sign in to comment.