]> git.decadent.org.uk Git - dak.git/commitdiff
Use parse_args()
authorJames Troup <james@nocrew.org>
Sun, 14 Jul 2002 15:02:07 +0000 (15:02 +0000)
committerJames Troup <james@nocrew.org>
Sun, 14 Jul 2002 15:02:07 +0000 (15:02 +0000)
jenna
madison

diff --git a/jenna b/jenna
index e1666b9c7f992ab7f52f8bca249b58dbe03adb15..8fb54eb0f4dff767c47a94636b68cb6e9d1d4c73 100755 (executable)
--- a/jenna
+++ b/jenna
@@ -2,7 +2,7 @@
 
 # Generate file lists used by apt-ftparchive to generate Packages and Sources files
 # Copyright (C) 2000, 2001, 2002  James Troup <james@nocrew.org>
-# $Id: jenna,v 1.19 2002-06-05 16:53:05 troup Exp $
+# $Id: jenna,v 1.20 2002-07-14 15:02:07 troup Exp $
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -67,63 +67,6 @@ ARCH, COMPONENT and SUITE can be space seperated lists, e.g.
 
 ################################################################################
 
-# Handle -a, -c and -s arguments; returns them as SQL constraints
-def parse_args():
-    if Options["Suite"]:
-        suite_ids_list = [];
-        for suite in string.split(Options["Suite"]):
-            suite_id = db_access.get_suite_id(suite);
-            if suite_id == -1:
-                utils.warn("suite '%s' not recognised." % (suite));
-            else:
-                suite_ids_list.append(suite_id);
-        if suite_ids_list:
-            con_suites = "AND su.id IN (%s)" % string.join(map(str, suite_ids_list), ", ");
-        else:
-            utils.fubar("No valid suite given.");
-    else:
-        con_suites = "";
-
-    if Options["Architecture"]:
-        arch_ids_list = [];
-        check_source = 0;
-        for architecture in string.split(Options["Architecture"]):
-            if architecture == "source":
-                check_source = 1;
-            else:
-                architecture_id = db_access.get_architecture_id(architecture);
-                if architecture_id == -1:
-                    utils.warn("architecture '%s' not recognised." % (architecture));
-                else:
-                    arch_ids_list.append(architecture_id);
-        if arch_ids_list:
-            con_architectures = "AND a.id IN (%s)" % string.join(map(str, arch_ids_list), ", ");
-        else:
-            if not check_source:
-                utils.fubar("No valid architecture given.");
-    else:
-        con_architectures = "";
-        check_source = 1;
-
-    if Options["Component"]:
-        component_ids_list = [];
-        for component in string.split(Options["Component"]):
-            component_id = db_access.get_component_id(component);
-            if component_id == -1:
-                utils.warn("component '%s' not recognised." % (component));
-            else:
-                component_ids_list.append(component_id);
-        if component_ids_list:
-            con_components = "AND su.id IN (%s)" % string.join(map(str, component_ids_list), ", ");
-        else:
-            utils.fubar("No valid component given.");
-    else:
-        con_components = "";
-
-    return (con_suites, con_architectures, con_components, check_source);
-
-################################################################################
-
 def version_cmp(a, b):
     return -apt_pkg.VersionCompare(a[0], b[0]);
 
@@ -412,7 +355,8 @@ def stable_dislocation_p():
 ################################################################################
 
 def do_da_do_da():
-    (con_suites, con_architectures, con_components, check_source) = parse_args();
+    (con_suites, con_architectures, con_components, check_source) = \
+                 utils.parse_args(Options);
 
     if stable_dislocation_p():
         dislocated_files = claire.find_dislocated_stable(Cnf, projectB);
diff --git a/madison b/madison
index 6961f818f0e67906558db2d5a80edbd10f69c0c0..39a389dc847bfd92e0e0cc23d583c9f7ae5200b7 100755 (executable)
--- a/madison
+++ b/madison
@@ -2,7 +2,7 @@
 
 # Display information about package(s) (suite, version, etc.)
 # Copyright (C) 2000, 2001, 2002  James Troup <james@nocrew.org>
-# $Id: madison,v 1.19 2002-06-05 00:20:16 troup Exp $
+# $Id: madison,v 1.20 2002-07-14 15:02:07 troup Exp $
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -72,11 +72,13 @@ def main ():
     Cnf = utils.get_conf()
 
     Arguments = [('a', "architecture", "Madison::Options::Architecture", "HasArg"),
+                 ('c', "component", "Madison::Options::Component", "HasArg"),
                  ('r', "regex", "Madison::Options::Regex"),
                  ('s', "suite", "Madison::Options::Suite", "HasArg"),
                  ('S', "source-and-binary", "Madison::Options::Source-And-Binary"),
                  ('h', "help", "Madison::Options::Help")];
-    for i in ["architecture", "regex", "suite", "source-and-binary", "help" ]:
+    for i in [ "architecture", "component", "regex", "suite",
+               "source-and-binary", "help" ]:
        if not Cnf.has_key("Madison::Options::%s" % (i)):
            Cnf["Madison::Options::%s" % (i)] = "";
 
@@ -91,45 +93,15 @@ def main ():
     projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"]));
     db_access.init(Cnf, projectB);
 
+    # Parse -a/--architecture, -s/--suite
+    (con_suites, con_architectures, con_components, check_source) = \
+                 utils.parse_args(Options);
+
     if Options["Regex"]:
         comparison_operator = "~";
     else:
         comparison_operator = "=";
 
-    if Options["Suite"]:
-        suite_ids_list = [];
-        for suite in string.split(Options["Suite"]):
-            suite_id = db_access.get_suite_id(suite);
-            if suite_id == -1:
-                utils.warn("suite '%s' not recognised." % (suite));
-            else:
-                suite_ids_list.append(suite_id);
-        if suite_ids_list:
-            con_suites = "AND su.id IN (%s)" % string.join(map(str, suite_ids_list), ", ");
-        else:
-            utils.fubar("No correct suite given.");
-    else:
-        con_suites = "";
-
-    if Options["Architecture"]:
-        arch_ids_list = [];
-        check_source = 0;
-        for architecture in string.split(Options["Architecture"]):
-            if architecture == "source":
-                check_source = 1;
-            architecture_id = db_access.get_architecture_id(architecture);
-            if architecture_id == -1:
-                utils.warn("architecture '%s' not recognised." % (architecture));
-            else:
-                arch_ids_list.append(architecture_id);
-        if arch_ids_list:
-            con_architectures = "AND a.id IN (%s)" % string.join(map(str, arch_ids_list), ", ");
-        else:
-            utils.fubar("No correct architecture given.");
-    else:
-        con_architectures = "";
-        check_source = 1;
-
     if Options["Source-And-Binary"]:
         new_packages = [];
         for package in packages: