Try setting grub default by number

This commit is contained in:
Ian Gulliver
2016-05-11 19:53:12 +00:00
parent b3db72c040
commit aa48483c11

View File

@@ -23,23 +23,17 @@ class GrubUpdater(object):
with tempfile.NamedTemporaryFile('w', dir=grub_dir, delete=False) as fh: with tempfile.NamedTemporaryFile('w', dir=grub_dir, delete=False) as fh:
try: try:
current = lib.GetCurrentImage(self._image_dir)
fh.write("""
set timeout=5
set default="%(default_image_filename)s (%(default_volume_id)s)"
""" % {
'default_image_filename': current,
'default_volume_id': lib.GetVolumeID(os.path.join(self._image_dir, current)),
})
files = [] files = []
for filename in os.listdir(self._image_dir): for filename in os.listdir(self._image_dir):
if not filename.endswith('.iso'): if not filename.endswith('.iso'):
continue continue
files.append(filename) files.append(filename)
default_entry = None
current = lib.GetCurrentImage(self._image_dir)
for i, filename in enumerate(sorted(files, reverse=True)): for i, filename in enumerate(sorted(files, reverse=True)):
if filename == current:
default_entry = i
fh.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
@@ -56,6 +50,13 @@ menuentry "%(image_filename)s (%(volume_id)s)" --hotkey=%(hotkey)s {
'volume_id': lib.GetVolumeID(os.path.join(self._image_dir, filename)), 'volume_id': lib.GetVolumeID(os.path.join(self._image_dir, filename)),
}) })
fh.write("""
set timeout=5
set default=%(default_entry)d
""" % {
'default_entry': default_entry,
})
fh.flush() fh.flush()
os.rename(fh.name, os.path.join(grub_dir, 'grub.cfg')) os.rename(fh.name, os.path.join(grub_dir, 'grub.cfg'))
except: except: