[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] pyGrub: Use proper bootloader class when entering command manually
On Tue, 2010-05-25 at 16:13 +0100, Michal Novotny wrote: > Ok, I found that the infrastructure of ExtLinuxImage and LiloImage is > different so I rewrote it a little (but according to the code the old > behaviour should be preserved) and also fixed the isconfig bug (since no > img.initrd is accessible that time). > > So please ignore the previous version of my patch and use this one. Perhaps instead of these two hunks: --- a/tools/pygrub/src/pygrub Tue May 25 11:28:58 2010 +0100 +++ b/tools/pygrub/src/pygrub Tue May 25 17:10:32 2010 +0200 @@ -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.imgcl("entered", lines) self.cf.add_image(img) self.selected_image = len(self.cf.images) - 1 self.isdone = True [...] self.cf = parser() self.cf.filename = f + + # Get the bootloader image file constructor to imgcl + if type(self.cf) == grub.LiloConf.LiloConfigFile: + self.imgcl = grub.LiloConf.LiloImage + elif type(self.cf) == grub.GrubConf.Grub2ConfigFile: + self.imgcl = grub.GrubConf.Grub2Image + elif type(self.cf) == grub.ExtLinuxConf.ExtLinuxConfigFile: + self.imgcl = grub.ExtLinuxConf.ExtLinuxImage + else: + self.imgcl = grub.GrubConf.GrubImage + break if self.__dict__.get('cf', None) is None: raise RuntimeError, "couldn't find bootloader config file in the image provided." We could add a method to each of the self.cf classes which returns a new image from the title+lines given. Then the first hunk becomes something like: - img = grub.GrubConf.GrubImage(lines) + img = self.cf.new_image("entered", lines) and the second bit goes away. This would be nice since it avoids hardcoding another list of bootloaders. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |