X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=fernanda;h=206633d5ee1d5438ce696948679acee68f6bbd65;hb=5fc7cefdb9b600c729ca5a82fd5b3a828f4fd370;hp=6f1a71fbbc0b3f4e9a5accbb0bd7838fcc6735b5;hpb=15e88015bcce67148a75c87db823c57c12bd73d5;p=dak.git diff --git a/fernanda b/fernanda index 6f1a71fb..206633d5 100755 --- a/fernanda +++ b/fernanda @@ -2,7 +2,7 @@ # Script to automate some parts of checking NEW packages # Copyright (C) 2000, 2001 James Troup -# $Id: fernanda,v 1.1 2001-06-15 01:18:25 troup Exp $ +# $Id: fernanda,v 1.3 2001-09-27 01:22:51 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 @@ -47,6 +47,18 @@ re_doc_directory = re.compile(r".*/doc/([^/]*).*"); ################################################################################ +def usage (exit_code=0): + print """Usage: fernanda [PACKAGE]... +Check NEW package(s). + + -h, --help show this help and exit + +PACKAGE can be a .changes, .dsc, .deb or .udeb filename.""" + + sys.exit(exit_code) + +################################################################################ + def do_command (command, filename): o = os.popen("%s %s" % (command, filename)); print o.read(); @@ -88,7 +100,7 @@ def check_deb (deb_filename): print "---- control file for %s ----" % (filename); do_command ("dpkg -I", deb_filename); - + if is_a_udeb: print "---- skipping lintian check for µdeb ----"; print ; @@ -110,16 +122,16 @@ def check_deb (deb_filename): def check_changes (changes_filename): changes = utils.parse_changes (changes_filename, 0); - + print "---- .changes file for %s ----" % (changes_filename); file = utils.open_file (changes_filename, 'r'); for line in file.readlines(): print line[:-1] print ; file.close(); - + files = utils.build_file_list(changes, ""); - + for file in files.keys(): if file[-4:] == ".deb" or file[-5:] == ".udeb": check_deb(file); @@ -131,17 +143,22 @@ def main (): global Cnf, projectB, db_files, waste, excluded; apt_pkg.init(); - + Cnf = apt_pkg.newConfiguration(); apt_pkg.ReadConfigFileISC(Cnf,utils.which_conf_file()); - Arguments = [('D',"debug","Jennifer::Options::Debug", "IntVal"), - ('h',"help","Jennifer::Options::Help"), - ('v',"version","Jennifer::Options::Version")]; + Arguments = [('h',"help","Fernanda::Options::Help")]; + for i in [ "help" ]: + Cnf["Fernanda::Options::%s" % (i)] = ""; args = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv); + Options = Cnf.SubTree("Fernanda::Options") + + if Options["Help"]: + usage(); + stdout_fd = sys.stdout; - + for file in args: try: # Pipe output for each argument through less @@ -163,12 +180,12 @@ def main (): sys.stdout = stdout_fd; except IOError, e: if errno.errorcode[e.errno] == 'EPIPE': - utils.warn("[fernanda] Caught EPIPE; skipping.\n"); + utils.warn("[fernanda] Caught EPIPE; skipping."); pass; else: raise; except KeyboardInterrupt: - utils.warn("[fernanda] Caught C-c; skipping.\n"); + utils.warn("[fernanda] Caught C-c; skipping."); pass; #######################################################################################