generic_stage_target: Split ._copy_kernel_config() from ._build_kernel()
authorW. Trevor King <wking@tremily.us>
Sat, 9 Feb 2013 20:45:34 +0000 (15:45 -0500)
committerMatt Turner <mattst88@gmail.com>
Sat, 23 Feb 2013 02:02:15 +0000 (18:02 -0800)
_copy_kernel_config() is one idea with a bunch of error handling.
Isolating it in its own function makes _build_kernel() easier to read.

Reviewed-by: Matt Turner <mattst88@gmail.com>
modules/generic_stage_target.py

index af7cbe7ce7eb3021aabe3d6cf38d9c4d2d8467bc..2c32c00f5999db08ae103fcd859330499f801824 100644 (file)
@@ -1426,29 +1426,7 @@ class generic_stage_target(generic_target):
                                +"build_kernel_"+kname):
                        print "Resume point detected, skipping build_kernel for "+kname+" operation..."
                else: # TODO: make this not require a kernel config
-                       try:
-                               if not os.path.exists(self.settings["boot/kernel/"+kname+"/config"]):
-                                       self.unbind()
-                                       raise CatalystError,\
-                                               "Can't find kernel config: "+\
-                                               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)
-
-                       except CatalystError:
-                               self.unbind()
+                       self._copy_kernel_config(kname=kname)
 
                        """
                        If we need to pass special options to the bootloader
@@ -1516,6 +1494,31 @@ class generic_stage_target(generic_target):
                                " post-kmerge ",
                                "Runscript post-kmerge failed",env=self.env)
 
+       def _copy_kernel_config(self, kname):
+               try:
+                       if not os.path.exists(self.settings["boot/kernel/"+kname+"/config"]):
+                               self.unbind()
+                               raise CatalystError,\
+                                       "Can't find kernel config: "+\
+                                       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)
+
+               except CatalystError:
+                       self.unbind()
+
        def bootloader(self):
                if "AUTORESUME" in self.settings \
                        and os.path.exists(self.settings["autoresume_path"]+"bootloader"):