livecdfs-update.sh: Escape ampersands in STARTX sed expression
[catalyst.git] / modules / generic_stage_target.py
index 337ab16529852b982d07b18743175cb532f45797..31cb025e6745a3858acacdf583d6df7dbaaf330c 100644 (file)
@@ -1426,7 +1426,6 @@ class generic_stage_target(generic_target):
                                +"build_kernel_"+kname):
                        print "Resume point detected, skipping build_kernel for "+kname+" operation..."
                        return
-               # TODO: make this not require a kernel config
                self._copy_kernel_config(kname=kname)
 
                """
@@ -1452,25 +1451,7 @@ class generic_stage_target(generic_target):
                        self.settings["boot/kernel/"+kname+\
                        "/extraversion"]
 
-               if "boot/kernel/"+kname+"/initramfs_overlay" in self.settings:
-                       if os.path.exists(self.settings["boot/kernel/"+\
-                               kname+"/initramfs_overlay"]):
-                               print "Copying initramfs_overlay dir "+\
-                                       self.settings["boot/kernel/"+kname+\
-                                       "/initramfs_overlay"]
-
-                               cmd("mkdir -p "+\
-                                       self.settings["chroot_path"]+\
-                                       "/tmp/initramfs_overlay/"+\
-                                       self.settings["boot/kernel/"+kname+\
-                                       "/initramfs_overlay"],env=self.env)
-
-                               cmd("cp -R "+self.settings["boot/kernel/"+\
-                                       kname+"/initramfs_overlay"]+"/* "+\
-                                       self.settings["chroot_path"]+\
-                                       "/tmp/initramfs_overlay/"+\
-                                       self.settings["boot/kernel/"+kname+\
-                                       "/initramfs_overlay"],env=self.env)
+               self._copy_initramfs_overlay(kname=kname)
 
                """ Execute the script that builds the kernel """
                cmd("/bin/bash "+self.settings["controller_file"]+\
@@ -1496,7 +1477,7 @@ class generic_stage_target(generic_target):
                        "Runscript post-kmerge failed",env=self.env)
 
        def _copy_kernel_config(self, kname):
-               try:
+               if "boot/kernel/"+kname+"/config" in self.settings:
                        if not os.path.exists(self.settings["boot/kernel/"+kname+"/config"]):
                                self.unbind()
                                raise CatalystError,\
@@ -1504,21 +1485,38 @@ class generic_stage_target(generic_target):
                                        self.settings["boot/kernel/"+kname+\
                                        "/config"]
 
-               except TypeError:
-                       raise CatalystError,\
-                               "Required value boot/kernel/config not specified"
+                       try:
+                               cmd("cp "+self.settings["boot/kernel/"+kname+\
+                                       "/config"]+" "+\
+                                       self.settings["chroot_path"]+"/var/tmp/"+\
+                                       kname+".config",\
+                                       "Couldn't copy kernel config: "+\
+                                       self.settings["boot/kernel/"+kname+\
+                                       "/config"],env=self.env)
 
-               try:
-                       cmd("cp "+self.settings["boot/kernel/"+kname+\
-                               "/config"]+" "+\
-                               self.settings["chroot_path"]+"/var/tmp/"+\
-                               kname+".config",\
-                               "Couldn't copy kernel config: "+\
-                               self.settings["boot/kernel/"+kname+\
-                               "/config"],env=self.env)
-
-               except CatalystError:
-                       self.unbind()
+                       except CatalystError:
+                               self.unbind()
+
+       def _copy_initramfs_overlay(self, kname):
+               if "boot/kernel/"+kname+"/initramfs_overlay" in self.settings:
+                       if os.path.exists(self.settings["boot/kernel/"+\
+                               kname+"/initramfs_overlay"]):
+                               print "Copying initramfs_overlay dir "+\
+                                       self.settings["boot/kernel/"+kname+\
+                                       "/initramfs_overlay"]
+
+                               cmd("mkdir -p "+\
+                                       self.settings["chroot_path"]+\
+                                       "/tmp/initramfs_overlay/"+\
+                                       self.settings["boot/kernel/"+kname+\
+                                       "/initramfs_overlay"],env=self.env)
+
+                               cmd("cp -R "+self.settings["boot/kernel/"+\
+                                       kname+"/initramfs_overlay"]+"/* "+\
+                                       self.settings["chroot_path"]+\
+                                       "/tmp/initramfs_overlay/"+\
+                                       self.settings["boot/kernel/"+kname+\
+                                       "/initramfs_overlay"],env=self.env)
 
        def bootloader(self):
                if "AUTORESUME" in self.settings \