[elbe-devel] [PATCH 7/7] elbepack: hdimg: simplify grub device.map handling

Thomas Weißschuh thomas.weissschuh at linutronix.de
Tue May 7 11:54:43 CEST 2024


Use some helper functions to simplify the code.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh at linutronix.de>
---
 elbepack/hdimg.py | 22 ++++++----------------
 1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/elbepack/hdimg.py b/elbepack/hdimg.py
index c246a1f42396..3dc1af82c619 100644
--- a/elbepack/hdimg.py
+++ b/elbepack/hdimg.py
@@ -161,11 +161,9 @@ class grubinstaller202(grubinstaller_base):
                     stack.enter_context(
                         mount(bindmnt, imagemntfs.fname(bindmnt), bind=True))
 
-                do(f'mkdir -p "{imagemntfs.fname("boot/grub")}"')
-
-                devmap = open(imagemntfs.fname('boot/grub/device.map'), 'w')
-                devmap.write(f'(hd0) {loopdev}\n')
-                devmap.close()
+                imagemntfs.mkdir_p('boot/grub')
+                imagemntfs.write_file('boot/grub/device.map', 0o644, f'(hd0) {loopdev}\n')
+                stack.callback(imagemntfs.remove, 'boot/grub/device.map')
 
                 chroot(imagemnt, ['update-grub2'])
 
@@ -188,9 +186,6 @@ class grubinstaller202(grubinstaller_base):
             except subprocess.CalledProcessError as E:
                 logging.error('Fail installing grub device: %s', E)
 
-            finally:
-                os.unlink(imagemntfs.fname('boot/grub/device.map'))
-
 
 class grubinstaller97(grubinstaller_base):
 
@@ -221,11 +216,9 @@ class grubinstaller97(grubinstaller_base):
                     stack.enter_context(
                         mount(bindmnt, imagemntfs.fname(bindmnt), bind=True))
 
-                do(f'mkdir -p "{imagemntfs.fname("boot/grub")}"')
-
-                devmap = open(imagemntfs.fname('boot/grub/device.map'), 'w')
-                devmap.write(f'(hd0) {loopdev}\n')
-                devmap.close()
+                imagemntfs.mkdir_p('boot/grub')
+                imagemntfs.write_file('boot/grub/device.map', 0o644, f'(hd0) {loopdev}\n')
+                stack.callback(imagemntfs.remove, 'boot/grub/device.map')
 
                 # Replace groot and kopt because else they will be given
                 # bad values
@@ -241,9 +234,6 @@ class grubinstaller97(grubinstaller_base):
             except subprocess.CalledProcessError as E:
                 logging.error('Fail installing grub device: %s', E)
 
-            finally:
-                os.unlink(imagemntfs.fname('boot/grub/device.map'))
-
 
 class simple_fstype:
     def __init__(self, typ):

-- 
2.45.0



More information about the elbe-devel mailing list