Remove some troublesome trailing slashes from paths
[catalyst.git] / modules / netboot_target.py
index 55a3a09c4381263ae98107b82eaaacdbb71eefb4..ff2c81fb88f039356363cd43812d28eab1fe975a 100644 (file)
@@ -1,16 +1,16 @@
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo/src/catalyst/modules/netboot_target.py,v 1.7 2005/12/02 17:05:56 wolf31o2 Exp $
-
 """
-Builder class for a netboot build.
+netboot target, version 1
 """
+# NOTE: That^^ docstring has influence catalyst-spec(5) man page generation.
 
 import os,string,types
 from catalyst_support import *
 from generic_stage_target import *
 
 class netboot_target(generic_stage_target):
+       """
+       Builder class for a netboot build.
+       """
        def __init__(self,spec,addlargs):
                self.valid_values = [
                        "netboot/kernel/sources",
@@ -23,84 +23,76 @@ class netboot_target(generic_stage_target):
                        "netboot/packages"
                ]
                self.required_values=[]
-                       
+
                try:
-                       if addlargs.has_key("netboot/packages"):
+                       if "netboot/packages" in addlargs:
                                if type(addlargs["netboot/packages"]) == types.StringType:
                                        loopy=[addlargs["netboot/packages"]]
                                else:
                                        loopy=addlargs["netboot/packages"]
-                       
+
                #       for x in loopy:
                #               self.required_values.append("netboot/packages/"+x+"/files")
                except:
                        raise CatalystError,"configuration error in netboot/packages."
-               
-               
-               
 
                generic_stage_target.__init__(self,spec,addlargs)
                self.set_build_kernel_vars(addlargs)
-               if addlargs.has_key("netboot/busybox_config"):
+               if "netboot/busybox_config" in addlargs:
                        file_locate(self.settings, ["netboot/busybox_config"])
 
                # Custom Kernel Tarball --- use that instead ...
 
                # unless the user wants specific CFLAGS/CXXFLAGS, let's use -Os
-               
+
                for envvar in "CFLAGS", "CXXFLAGS":
-                       if not os.environ.has_key(envvar) and not addlargs.has_key(envvar):
+                       if envvar not in os.environ and envvar not in addlargs:
                                self.settings[envvar] = "-Os -pipe"
-       
-
-#              def set_root_path(self):
-#              # ROOT= variable for emerges
-#              self.settings["root_path"]="/tmp/image"
 
-       def set_dest_path(self):
-               #destpath=self.settings["chroot_path"]+self.settings["root_path"]
-               destpath=normpath(self.settings["chroot_path"]+"/tmp/image")
+       def set_root_path(self):
+               # ROOT= variable for emerges
+               self.settings["root_path"]=normpath("/tmp/image")
+               print "netboot root path is "+self.settings["root_path"]
 
 #      def build_packages(self):
 #              # build packages
-#              if self.settings.has_key("netboot/packages"):
+#              if "netboot/packages" in self.settings:
 #                      mypack=list_bashify(self.settings["netboot/packages"])
 #              try:
-#                      cmd("/bin/bash "+self.settings["controller_file"]+" packages "+mypack)
+#                      cmd("/bin/bash "+self.settings["controller_file"]+" packages "+mypack,env=self.env)
 #              except CatalystError:
 #                      self.unbind()
 #                      raise CatalystError,"netboot build aborting due to error."
-       
+
        def build_busybox(self):
                # build busybox
-               if self.settings.has_key("netboot/busybox_config"):
+               if "netboot/busybox_config" in self.settings:
                        mycmd = self.settings["netboot/busybox_config"]
                else:
                        mycmd = ""
                try:
-                       cmd("/bin/bash "+self.settings["controller_file"]+" busybox "+ mycmd)
+                       cmd("/bin/bash "+self.settings["controller_file"]+" busybox "+ mycmd,env=self.env)
                except CatalystError:
                        self.unbind()
                        raise CatalystError,"netboot build aborting due to error."
-       
 
        def copy_files_to_image(self):
                # create image
                myfiles=[]
-               if self.settings.has_key("netboot/packages"):
+               if "netboot/packages" in self.settings:
                        if type(self.settings["netboot/packages"]) == types.StringType:
                                loopy=[self.settings["netboot/packages"]]
                        else:
                                loopy=self.settings["netboot/packages"]
-               
+
                for x in loopy:
-                       if self.settings.has_key("netboot/packages/"+x+"/files"):
-                               if type(self.settings["netboot/packages/"+x+"/files"]) == types.ListType:
-                                       myfiles.extend(self.settings["netboot/packages/"+x+"/files"])
-                               else:
-                                       myfiles.append(self.settings["netboot/packages/"+x+"/files"])
+                       if "netboot/packages/"+x+"/files" in self.settings:
+                           if type(self.settings["netboot/packages/"+x+"/files"]) == types.ListType:
+                                   myfiles.extend(self.settings["netboot/packages/"+x+"/files"])
+                           else:
+                                   myfiles.append(self.settings["netboot/packages/"+x+"/files"])
 
-               if self.settings.has_key("netboot/extra_files"):
+               if "netboot/extra_files" in self.settings:
                        if type(self.settings["netboot/extra_files"]) == types.ListType:
                                myfiles.extend(self.settings["netboot/extra_files"])
                        else:
@@ -108,16 +100,15 @@ class netboot_target(generic_stage_target):
 
                try:
                        cmd("/bin/bash "+self.settings["controller_file"]+\
-                               " image " + list_bashify(myfiles))
+                               " image " + list_bashify(myfiles),env=self.env)
                except CatalystError:
                        self.unbind()
                        raise CatalystError,"netboot build aborting due to error."
 
-
        def create_netboot_files(self):
                # finish it all up
                try:
-                       cmd("/bin/bash "+self.settings["controller_file"]+" finish")
+                       cmd("/bin/bash "+self.settings["controller_file"]+" finish",env=self.env)
                except CatalystError:
                        self.unbind()
                        raise CatalystError,"netboot build aborting due to error."
@@ -125,10 +116,9 @@ class netboot_target(generic_stage_target):
                # end
                print "netboot: build finished !"
 
-
        def set_action_sequence(self):
-               self.settings["action_sequence"]=["unpack","unpack_snapshot",
-                                               "config_profile_link","setup_confdir","bind","chroot_setup",\
+           self.settings["action_sequence"]=["unpack","unpack_snapshot",
+                                       "config_profile_link","setup_confdir","bind","chroot_setup",\
                                                "setup_environment","build_packages","build_busybox",\
                                                "build_kernel","copy_files_to_image",\
                                                "clean","create_netboot_files","unbind","clear_autoresume"]