diff options
Diffstat (limited to 'tools/pygrub')
-rw-r--r-- | tools/pygrub/src/ExtLinuxConf.py | 6 | ||||
-rw-r--r-- | tools/pygrub/src/GrubConf.py | 8 | ||||
-rw-r--r-- | tools/pygrub/src/LiloConf.py | 6 | ||||
-rw-r--r-- | tools/pygrub/src/pygrub | 12 |
4 files changed, 26 insertions, 6 deletions
diff --git a/tools/pygrub/src/ExtLinuxConf.py b/tools/pygrub/src/ExtLinuxConf.py index 99f0990a90..6be65cef1d 100644 --- a/tools/pygrub/src/ExtLinuxConf.py +++ b/tools/pygrub/src/ExtLinuxConf.py @@ -119,6 +119,12 @@ class ExtLinuxConfigFile(object): if fn is not None: self.parse() + def new_image(self, title, lines): + # ExtLinuxImage constructor doesn't have title but since path + # is being used by get_{kernel|initrd} functions we pass + # empty string rather than None (see lines above) + return ExtLinuxImage(lines, "") + def parse(self, buf = None): if buf is None: if self.filename is None: diff --git a/tools/pygrub/src/GrubConf.py b/tools/pygrub/src/GrubConf.py index 51d0c17a4e..0b946d3e46 100644 --- a/tools/pygrub/src/GrubConf.py +++ b/tools/pygrub/src/GrubConf.py @@ -252,6 +252,9 @@ class GrubConfigFile(_GrubConfigFile): def __init__(self, fn = None): _GrubConfigFile.__init__(self,fn) + def new_image(self, title, lines): + return GrubImage(title, lines) + def parse(self, buf = None): if buf is None: if self.filename is None: @@ -345,7 +348,10 @@ class Grub2Image(_GrubImage): class Grub2ConfigFile(_GrubConfigFile): def __init__(self, fn = None): _GrubConfigFile.__init__(self, fn) - + + def new_image(self, title, lines): + return Grub2Image(title, lines) + def parse(self, buf = None): if buf is None: if self.filename is None: diff --git a/tools/pygrub/src/LiloConf.py b/tools/pygrub/src/LiloConf.py index 8f029571cf..9858ae26f5 100644 --- a/tools/pygrub/src/LiloConf.py +++ b/tools/pygrub/src/LiloConf.py @@ -147,6 +147,12 @@ class LiloConfigFile(object): def add_image(self, image): self.images.append(image) + def new_image(self, title, lines): + # LiloImage constructor doesn't have title but since path + # is being used by get_{kernel|initrd} functions we pass + # empty string rather than None (see lines above) + return LiloImage(lines, "") + def _get_default(self): for i in range(len(self.images)): if self.images[i].title == self._default: diff --git a/tools/pygrub/src/pygrub b/tools/pygrub/src/pygrub index 0973b8a971..e52df7b525 100644 --- a/tools/pygrub/src/pygrub +++ b/tools/pygrub/src/pygrub @@ -356,7 +356,7 @@ class Grub: continue # if we got boot, then we want to boot the entered image - img = grub.GrubConf.GrubImage(lines) + img = self.cf.new_image("entered", lines) self.cf.add_image(img) self.selected_image = len(self.cf.images) - 1 self.isdone = True @@ -392,9 +392,11 @@ class Grub: if not fs: # set the config file and parse it - self.cf.filename = fn - self.cf.parse() - return + for f,parser in cfg_list: + self.cf = parser() + self.cf.filename = fn + self.cf.parse() + return for f,parser in cfg_list: if fs.file_exists(f): @@ -689,7 +691,7 @@ if __name__ == "__main__": if isconfig: chosencfg = run_grub(file, entry, fs, incfg["args"]) print " kernel: %s" % chosencfg["kernel"] - if img.initrd: + if chosencfg["ramdisk"]: print " initrd: %s" % chosencfg["ramdisk"] print " args: %s" % chosencfg["args"] sys.exit(0) |