Add armv6j_hardfp
[catalyst.git] / catalyst
index 61efc16e96653109b31f2c972a99a9beb0627aa0..11b52d90891f56bc287d85a5e468d8d9a576cbe4 100755 (executable)
--- a/catalyst
+++ b/catalyst
@@ -2,7 +2,8 @@
 
 # Maintained in full by:
 # Andrew Gaffney <agaffney@gentoo.org>
-# Chris Gianelloni <wolf31o2@gentoo.org>
+# Chris Gianelloni <wolf31o2@wolf31o2.org>
+# $Id$
 
 import os, sys, getopt
 
@@ -16,7 +17,7 @@ from catalyst.output import *
 from catalyst.error import *
 from catalyst.hash import hash_map
 
-__maintainer__="Chris Gianelloni <wolf31o2@gentoo.org>"
+__maintainer__="Chris Gianelloni <wolf31o2@wolf31o2.org>"
 __version__="2.99"
 
 conf_values = {}
@@ -54,10 +55,9 @@ def show_version():
        msg("Copyright 2008 various authors")
        msg("Distributed under the GNU General Public License version 2.1")
 
-def parse_config(myconfig):
+def parse_config():
        # search a couple of different areas for the main config file
        myconf = {}
-       config_file = ""
 
        confdefaults = {
                "storedir": "/var/tmp/catalyst",
@@ -70,17 +70,16 @@ def parse_config(myconfig):
        }
 
        # first, try the one passed (presumably from the cmdline)
-       if myconfig:
-               if os.path.exists(myconfig):
-                       msg("Using command line specified Catalyst configuration file, " + myconfig)
-                       config_file = myconfig
+       if "config_file" in conf_values:
+               if os.path.exists(conf_values["config_file"]):
+                       msg("Using command line specified Catalyst configuration file, " + conf_values["config_file"])
                else:
-                       die("specified configuration file " + myconfig + " does not exist")
+                       die("specified configuration file " + conf_values["config_file"] + " does not exist")
 
        # next, try the default location
        elif os.path.exists("/etc/catalyst/catalyst.conf"):
                msg("Using default Catalyst configuration file, /etc/catalyst/catalyst.conf")
-               config_file = "/etc/catalyst/catalyst.conf"
+               conf_values["config_file"] = "/etc/catalyst/catalyst.conf"
 
        # can't find a config file (we are screwed), so bail out
        else:
@@ -93,11 +92,11 @@ def parse_config(myconfig):
 
        # now, try and parse the config file "config_file"
        try:
-               myconfig = catalyst.config.ConfigParser(config_file)
+               myconfig = catalyst.config.ConfigParser(conf_values["config_file"])
                myconf.update(myconfig.get_values())
 
        except:
-               die("Unable to parse configuration file, " + myconfig)
+               die("Unable to parse configuration file, " + conf_values["config_file"])
 
        # now, load up the values into conf_values so that we can use them
        for x in confdefaults.keys():
@@ -120,7 +119,6 @@ def parse_config(myconfig):
                ("purge", "PURGE", "Purge support enabled."),
                ("seedcache", "SEEDCACHE", "Seed cache support enabled."),
                ("snapcache", "SNAPCACHE", "Snapshot cache support enabled."),
-               ("metadata_overlay", "METADATA_OVERLAY", "Use of metadata_overlay module for portage enabled."),
 #              ("tarball", "TARBALL", "Tarball creation enabled.")
        )
 
@@ -142,28 +140,6 @@ def parse_config(myconfig):
                msg("Envscript support enabled.")
                conf_values["ENVSCRIPT"] = myconf["envscript"]
 
-def build_targets():
-       spec_values = config.get_spec().get_values()
-       targetmap = config.get_targetmap()
-
-       if not "targets" in spec_values or not spec_values['targets']:
-               raise CatalystError, "No target(s) specified."
-
-       for x in spec_values['targets']:
-               if not x in targetmap:
-                       raise CatalystError("Target \"" + x + "\" is not a known target.")
-
-       for x in spec_values['targets']:
-               try:
-                       config.get_spec().set_target(x)
-                       mytarget = targetmap[x]()
-                       mytarget.run()
-
-               except:
-                       catalyst.util.print_traceback()
-                       warn("Error encountered during run of target " + x)
-                       raise
-
 def verify_digest_and_hash_functions():
        # Start checking that digests are valid now that the hash_map was imported from catalyst_support
        if "digests" in conf_values:
@@ -203,14 +179,7 @@ def verify_digest_and_hash_functions():
                        msg("Catalyst aborting....")
                        sys.exit(2)
 
-if __name__ == "__main__":
-
-       show_version()
-
-       if os.getuid() != 0:
-               # catalyst cannot be run as a normal user due to chroots, mounts, etc
-               die("This script requires root privileges to operate", 2)
-
+def parse_commandline():
        # parse out the command line arguments
        try:
                opts,args = getopt.getopt(sys.argv[1:], "apPhvdc:C:f:FVs:", ["purge", "purgeonly", "help", "version", "debug",\
@@ -221,13 +190,7 @@ if __name__ == "__main__":
                sys.exit(2)
 
        # defaults for commandline opts
-       debug=False
-       verbose=False
-       fetch=False
-       myconfig=""
-       myspecfile=""
-       mycmdline=[]
-       myopts=[]
+       conf_values["command_line"] = []
 
        # check preconditions
        if len(opts) == 0:
@@ -250,18 +213,18 @@ if __name__ == "__main__":
                        conf_values["VERBOSE"]="1"
 
                if o in ("-c", "--config"):
-                       myconfig=a
+                       conf_values["config_file"] = a
 
                if o in ("-C", "--cli"):
                        run = True
                        x = sys.argv.index(o) + 1
                        while x < len(sys.argv):
-                               mycmdline.append(sys.argv[x])
+                               conf_values["command_line"].append(sys.argv[x])
                                x = x + 1
 
                if o in ("-f", "--file"):
                        run = True
-                       myspecfile = a
+                       conf_values["spec_file"] = a
 
                if o in ("-F", "--fetchonly"):
                        conf_values["FETCH"] = "1"
@@ -276,8 +239,8 @@ if __name__ == "__main__":
                                sys.exit(2)
                        else:
                                run = True
-                               mycmdline.append("target=snapshot")
-                               mycmdline.append("version_stamp="+a)
+                               conf_values["command_line"].append("target=snapshot")
+                               conf_values["command_line"].append("version_stamp="+a)
 
                if o in ("-p", "--purge"):
                        conf_values["PURGE"] = "1"
@@ -293,22 +256,32 @@ if __name__ == "__main__":
                usage()
                sys.exit(2)
 
-       parse_config(myconfig)
+if __name__ == "__main__":
+
+       show_version()
+
+       if os.getuid() != 0:
+               # catalyst cannot be run as a normal user due to chroots, mounts, etc
+               die("This script requires root privileges to operate", 2)
+
+       parse_commandline()
+
+       parse_config()
 
        verify_digest_and_hash_functions()
 
        targetmap = catalyst.target.build_target_map()
        spec = catalyst.config.Spec()
 
-       if myspecfile:
-               specparser = catalyst.config.SpecParser(myspecfile)
+       if "spec_file" in conf_values:
+               specparser = catalyst.config.SpecParser(conf_values["spec_file"])
                spec_values = specparser.get_values()
                spec.parse_values(spec_values)
 
-       if mycmdline:
+       if "command_line" in conf_values:
                try:
                        cmdline = catalyst.config.ConfigParser()
-                       cmdline.parse_lines(mycmdline)
+                       cmdline.parse_lines(conf_values["command_line"])
                        cmdline_values = cmdline.get_values()
                        spec.parse_values(cmdline_values)
                except CatalystError:
@@ -320,7 +293,7 @@ if __name__ == "__main__":
 
        # everything is setup, so the build is a go
        try:
-               build_targets()
+               catalyst.target.build_targets()
 
        except CatalystError:
                msg()