Remove need for shell wrap complexity

This commit is contained in:
Ian Gulliver
2016-05-10 19:02:14 +00:00
parent a830264910
commit b1f01ea143

View File

@@ -4,7 +4,7 @@ import os
import re import re
import string import string
import subprocess import subprocess
import sys import tempfile
class GrubUpdater(object): class GrubUpdater(object):
@@ -30,9 +30,12 @@ class GrubUpdater(object):
return match.group('volume_id').decode('ascii') return match.group('volume_id').decode('ascii')
def Update(self): def Update(self):
grub_dir = os.path.join(self._boot_dir, 'grub')
with tempfile.NamedTemporaryFile(dir=grub_dir, delete=False) as fh:
current = os.readlink(os.path.join(self._image_dir, 'current')) current = os.readlink(os.path.join(self._image_dir, 'current'))
sys.stdout.write(""" fh.write("""
set timeout=5 set timeout=5
set default=%(default_image_filename)s set default=%(default_image_filename)s
""" % { """ % {
@@ -46,7 +49,7 @@ set default=%(default_image_filename)s
files.append(filename) files.append(filename)
for i, filename in enumerate(sorted(files, reverse=True)): for i, filename in enumerate(sorted(files, reverse=True)):
sys.stdout.write(""" fh.write("""
menuentry "%(image_filename)s (%(volume_id)s)" --hotkey=%(hotkey)s { menuentry "%(image_filename)s (%(volume_id)s)" --hotkey=%(hotkey)s {
search --no-floppy --file --set=root %(image_path)s/%(image_filename)s search --no-floppy --file --set=root %(image_path)s/%(image_filename)s
iso_path="%(image_path)s/%(image_filename)s" iso_path="%(image_path)s/%(image_filename)s"
@@ -61,3 +64,6 @@ menuentry "%(image_filename)s (%(volume_id)s)" --hotkey=%(hotkey)s {
'hotkey': self._HOTKEYS[i], 'hotkey': self._HOTKEYS[i],
'volume_id': self._GetVolumeID(os.path.join(self._image_dir, filename)), 'volume_id': self._GetVolumeID(os.path.join(self._image_dir, filename)),
}) })
fh.flush()
os.rename(fh.name, os.path.join(grub_dir, 'grub.cfg'))