Try setting grub default by number
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user