]> err.no Git - dak/commitdiff
misc nit-picking, remove unused variables, clean up white space and coding style.
authorJames Troup <james@nocrew.org>
Tue, 26 Nov 2002 16:15:54 +0000 (16:15 +0000)
committerJames Troup <james@nocrew.org>
Tue, 26 Nov 2002 16:15:54 +0000 (16:15 +0000)
fernanda.py

index bb4eedc5bebc13d8d6ba223a9052fe8fb15698d1..81704dca726c0ff4dadf234ce3b659d8733ec3be 100755 (executable)
@@ -2,7 +2,7 @@
 
 # Script to automate some parts of checking NEW packages
 # Copyright (C) 2000, 2001, 2002  James Troup <james@nocrew.org>
-# $Id: fernanda.py,v 1.7 2002-11-26 02:51:52 rdonald Exp $
+# $Id: fernanda.py,v 1.8 2002-11-26 16:15:54 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
 import errno, os, re, sys
 import utils
 import apt_pkg, apt_inst
-import pg, string, db_access
+import pg, db_access
 
 ################################################################################
 
-
 re_package = re.compile(r"^(.+?)_.*");
 re_doc_directory = re.compile(r".*/doc/([^/]*).*");
 
-
 re_contrib = re.compile('^contrib/')
 re_nonfree = re.compile('^non\-free/')
 
@@ -52,30 +50,30 @@ re_arch = re.compile("Architecture: .*")
 re_builddep = re.compile("Build-Depends: .*")
 re_builddepind = re.compile("Build-Depends-Indep: .*")
 
-re_localhost = re.compile("localhost\.localdomain") 
+re_localhost = re.compile("localhost\.localdomain")
 re_version = re.compile('^(.*)\((.*)\)')
 
 re_newlinespace = re.compile('\n')
 re_spacestrip = re.compile('(\s)')
 
-##############################################################################################################
+################################################################################
 
 # Colour definitions
 
 # Main
-main_colour = "\033[36m"
+main_colour = "\033[36m";
 # Contrib
-contrib_colour = "\033[33m"
+contrib_colour = "\033[33m";
 # Non-Free
-nonfree_colour = "\033[31m"
+nonfree_colour = "\033[31m";
 # Arch
-arch_colour = "\033[32m"
+arch_colour = "\033[32m";
 # End
-end_colour = "\033[0m"
-# Bold 
-bold_colour = "\033[1m"
+end_colour = "\033[0m";
+# Bold
+bold_colour = "\033[1m";
 # Bad maintainer
-maintainer_colour = arch_colour
+maintainer_colour = arch_colour;
 
 ################################################################################
 
@@ -86,8 +84,6 @@ Cnf = utils.get_conf()
 projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"]))
 db_access.init(Cnf, projectB);
 
-
-
 ################################################################################
 
 def usage (exit_code=0):
@@ -109,91 +105,76 @@ def get_depends_parts(depend) :
     else :
        d_parts = { 'name' : depend , 'version' : '' }
     return d_parts
-                               
+
 def get_or_list(depend) :
-    or_list = string.split(depend, "|")
+    or_list = depend.split("|");
     return or_list
-                                       
+
 def get_comma_list(depend) :
-    dep_list = string.split(depend, ",")
+    dep_list = depend.split(",");
     return dep_list
-                                               
-                                               
+
 def split_depends (d_str) :
     # creates a list of lists of dictionaries of depends (package,version relation)
-    
-    d_str = re_spacestrip.sub('',d_str)
-    depends_tree = []
+
+    d_str = re_spacestrip.sub('',d_str);
+    depends_tree = [];
     # first split depends string up amongs comma delimiter
-    dep_list = get_comma_list(d_str)
-    d = 0
+    dep_list = get_comma_list(d_str);
+    d = 0;
     while d < len(dep_list):
        # put depends into their own list
-       depends_tree.append([dep_list[d]])
-       d = d + 1
-    d = 0
-    while d < len(depends_tree) :
-       k = 0
+       depends_tree.append([dep_list[d]]);
+       d += 1;
+    d = 0;
+    while d < len(depends_tree):
+       k = 0;
        # split up Or'd depends into a multi-item list
-       depends_tree[d] = get_or_list(depends_tree[d][0])
-       while k < len(depends_tree[d]) :
+       depends_tree[d] = get_or_list(depends_tree[d][0]);
+       while k < len(depends_tree[d]):
            # split depends into {package, version relation}
-           depends_tree[d][k] = get_depends_parts(depends_tree[d][k])
-           k = k + 1
-       d = d +1
-    return depends_tree
-                                                                                                                                                                               
-def read_control (filename) :
-    
-    recommends = []
-    depends = []
-    section = ''
-    maintainer = ''
-    arch = ''
-
-
-
-    
+           depends_tree[d][k] = get_depends_parts(depends_tree[d][k]);
+           k += 1;
+       d += 1;
+    return depends_tree;
+
+def read_control (filename):
+    recommends = [];
+    depends = [];
+    section = '';
+    maintainer = '';
+    arch = '';
+
     deb_file = utils.open_file(filename);
     try:
-       extracts = apt_inst.debExtractControl(deb_file)
-       control = apt_pkg.ParseSection(extracts)
+       extracts = apt_inst.debExtractControl(deb_file);
+       control = apt_pkg.ParseSection(extracts);
     except:
+       print "can't parse control info";
+       control = '';
 
-       print "can't parse control info"
-       control = ''    
-
-       
     deb_file.close();
-    
-    control_keys = control.keys()
-    
-    
-   
-
-       
-       
-       
+
+    control_keys = control.keys();
+
     if control.has_key("Depends"):
-       depends_str = control.Find("Depends")
+       depends_str = control.Find("Depends");
        # create list of dependancy lists
-       depends = split_depends(depends_str)
-    
-       
+       depends = split_depends(depends_str);
+
     if control.has_key("Recommends"):
-       recommends_str = control.Find("Recommends")
-       recommends = split_depends(recommends_str)
-    
+       recommends_str = control.Find("Recommends");
+       recommends = split_depends(recommends_str);
+
     if control.has_key("Section"):
-       section_str = control.Find("Section")
-   
+       section_str = control.Find("Section");
+
        c_match = re_contrib.search(section_str)
        nf_match = re_nonfree.search(section_str)
        if c_match :
            # contrib colour
            section = contrib_colour + section_str + end_colour
        elif nf_match :
-           
            # non-free colour
            section = nonfree_colour + section_str + end_colour
        else :
@@ -202,132 +183,107 @@ def read_control (filename) :
     if control.has_key("Achitecture"):
        arch_str = control.Find("Architecture")
        arch = arch_colour + arch_str + end_colour
-    
+
     if control.has_key("Maintainer"):
-       maintainer = control.Find("Maintainer") 
-       localhost = re_localhost.search(maintainer) 
-       if localhost :
+       maintainer = control.Find("Maintainer")
+       localhost = re_localhost.search(maintainer)
+       if localhost:
            #highlight bad email
-           maintainer = maintainer_colour + maintainer + end_colour 
-    
+           maintainer = maintainer_colour + maintainer + end_colour;
 
     return (control, control_keys, section, depends, recommends, arch, maintainer)
-    
-    
-def read_dsc (dsc_filename) :
-    buf = []
-    header = ''
-    footer = ''
-    dsc = {}
-    dsc_files = {}
-    
-    dsc_file = utils.open_file(dsc_filename)               
+
+def read_dsc (dsc_filename):
+    dsc = {};
+
+    dsc_file = utils.open_file(dsc_filename);
     try:
-       dsc.update(utils.parse_changes(dsc_filename, dsc_whitespace_rules=0))
-       dsc_files.update(utils.build_file_list(dsc, is_a_dsc=1))
+       dsc = utils.parse_changes(dsc_filename);
     except:
-    
        print "can't parse control info"
-       
-   
-                                               
     dsc_file.close();
 
-    filecontents = dsc["filecontents"]
+    filecontents = dsc["filecontents"];
 
     if dsc.has_key("build-depends"):
-       
-       builddep = split_depends(dsc["build-depends"])
-       builddepstr = create_depends_string(builddep)
-       filecontents = re_builddep.sub("Build-Depends: "+builddepstr, filecontents)
-    
-    
-    if dsc.has_key("build-depends-indep") :
-       builddepindstr = create_depends_string(split_depends(dsc["build-depends-indep"]))
-       filecontents = re_builddepind.sub("Build-Depends-Indep: "+builddepindstr, filecontents)
-
-    
-
-    
+       builddep = split_depends(dsc["build-depends"]);
+       builddepstr = create_depends_string(builddep);
+       filecontents = re_builddep.sub("Build-Depends: "+builddepstr, filecontents);
+
+    if dsc.has_key("build-depends-indep"):
+       builddepindstr = create_depends_string(split_depends(dsc["build-depends-indep"]));
+       filecontents = re_builddepind.sub("Build-Depends-Indep: "+builddepindstr, filecontents);
+
     if dsc.has_key("architecture") :
+       if (dsc["architecture"] != "any"):
+           newarch = arch_colour + dsc["architecture"] + end_colour;
+           filecontents = re_arch.sub("Architecture: " + newarch, filecontents);
 
-       if (dsc["architecture"] != "any") : 
-           newarch = arch_colour + dsc["architecture"] + end_colour 
-           filecontents = re_arch.sub("Architecture: "+newarch, filecontents)
-    
-    return (filecontents)
+    return filecontents;
 
-def create_depends_string(depends_tree) :
+def create_depends_string (depends_tree):
     # just look up unstable for now. possibly pull from .changes later
-    suite = "unstable"
-    result = ""
-    comma_count = 1
+    suite = "unstable";
+    result = "";
+    comma_count = 1;
     for l in depends_tree:
-       if (comma_count >= 2) :
-           result = result + ", "
+       if (comma_count >= 2):
+           result += ", ";
        or_count = 1
-       for d in l :
-           if (or_count >= 2 ) :
-               result = result + " | "
+       for d in l:
+           if (or_count >= 2 ):
+               result += " | "
            # doesn't do version lookup yet.
 
-           q = projectB.query("SELECT DISTINCT(b.package), b.version, c.name, su.suite_name FROM  binaries b, files fi, location l, component c, bin_associations ba, suite su WHERE b.package='%s' AND b.file = fi.id AND fi.location = l.id AND l.component = c.id AND ba.bin=b.id AND ba.suite = su.id AND su.suite_name='%s' ORDER BY b.version desc" % (d['name'], suite))
+           q = projectB.query("SELECT DISTINCT(b.package), b.version, c.name, su.suite_name FROM  binaries b, files fi, location l, component c, bin_associations ba, suite su WHERE b.package='%s' AND b.file = fi.id AND fi.location = l.id AND l.component = c.id AND ba.bin=b.id AND ba.suite = su.id AND su.suite_name='%s' ORDER BY b.version desc" % (d['name'], suite));
            ql = q.getresult();
            if ql:
-               i = ql[0]
-               #for i in ql:
-               
-               if i[2] == "contrib" :
-                   result = result + contrib_colour + d['name']
-               elif i[2] == "non-free" :
-                   result = result + nonfree_colour + d['name']
+               i = ql[0];
+
+               if i[2] == "contrib":
+                   result += contrib_colour + d['name'];
+               elif i[2] == "non-free":
+                   result += nonfree_colour + d['name'];
                else :
-                   result = result + main_colour + d['name']
-                   
+                   result += main_colour + d['name'];
+
                if d['version'] != '' :
-                   result = result +  " (" + d['version'] + ")"
-               result = result +end_colour
-           else :
-               result = result + bold_colour + d['name']
+                   result += " (%s)" % (d['version']);
+               result += end_colour;
+           else:
+               result += bold_colour + d['name'];
                if d['version'] != '' :
-                   result = result + " ("  + d['version'] + ")"
-               result = result  + end_colour
-           or_count = or_count + 1
-       comma_count = comma_count + 1
-    return result
-
+                   result += " (%s)" % (d['version']);
+               result += end_colour;
+           or_count += 1;
+       comma_count += 1;
+    return result;
 
 def output_deb_info(filename):
-    
+    (control, control_keys, section, depends, recommends, arch, maintainer) = read_control(filename);
 
-    (control, control_keys, section, depends, recommends, arch, maintainer) = read_control(filename)
-
-    if control == '' :
-       print "no control info" 
-    else :
-
-       
+    if control == '':
+       print "no control info"
+    else:
        for key in control_keys :
-
            output = " " + key + ": "
-           if key == 'Depends' :
-               output = output + create_depends_string(depends)
-           elif key == 'Recommends' :
-               output = output + create_depends_string(recommends)         
-           elif key == 'Section' :
-               output = output + section
-           elif key == 'Architecture' :
-               output = output + arch
-           elif key == 'Maintainer' :
-               output = output + maintainer
-           elif key == 'Description' :
-               desc = control.Find(key)
-               desc = re_newlinespace.sub('\n ', desc)
-               output = output + desc
-           else :
-               output = output + control.Find(key)
-           print output
-       
+           if key == 'Depends':
+               output += create_depends_string(depends);
+           elif key == 'Recommends':
+               output += create_depends_string(recommends);
+           elif key == 'Section':
+               output += section;
+           elif key == 'Architecture':
+               output += arch;
+           elif key == 'Maintainer':
+               output += maintainer;
+           elif key == 'Description':
+               desc = control.Find(key);
+               desc = re_newlinespace.sub('\n ', desc);
+               output += desc;
+           else:
+               output += control.Find(key);
+           print output;
 
 def do_command (command, filename):
     o = os.popen("%s %s" % (command, filename));
@@ -353,12 +309,8 @@ def print_copyright (deb_filename):
 def check_dsc (dsc_filename):
     print "---- .dsc file for %s ----" % (dsc_filename);
     (dsc) = read_dsc(dsc_filename)
-    
     print dsc
 
-    
-
-
 def check_deb (deb_filename):
     filename = os.path.basename(deb_filename);
 
@@ -370,7 +322,7 @@ def check_deb (deb_filename):
     print "---- control file for %s ----" % (filename);
     #do_command ("dpkg -I", deb_filename);
     output_deb_info(deb_filename)
-    
+
     if is_a_udeb:
        print "---- skipping lintian check for µdeb ----";
        print ;
@@ -433,7 +385,7 @@ def main ():
     for file in args:
         try:
             # Pipe output for each argument through less
-            less_fd = os.popen("less -R -", 'w', 0);  
+            less_fd = os.popen("less -R -", 'w', 0);
            # -R added to display raw control chars for colour
             sys.stdout = less_fd;