diff options
| author | fuzzyray <fuzzyray@gentoo.org> | 2009-05-05 21:04:27 +0000 |
|---|---|---|
| committer | fuzzyray <fuzzyray@gentoo.org> | 2009-05-05 21:04:27 +0000 |
| commit | 7dd5d6b8f250db3657040e3bcb9e44b674d74bb4 (patch) | |
| tree | a222f01c8594973b60e9de5508d4d2600309547f /bin/glsa-check | |
| parent | d03c4875f20b77a54021232bc3c7be612706b4a4 (diff) | |
| download | gentoolkit-7dd5d6b8f250db3657040e3bcb9e44b674d74bb4.tar.gz | |
Update to most recent versions and add changes from djanderson
svn path=/trunk/gentoolkit/; revision=599
Diffstat (limited to 'bin/glsa-check')
| -rw-r--r-- | bin/glsa-check | 45 |
1 files changed, 26 insertions, 19 deletions
diff --git a/bin/glsa-check b/bin/glsa-check index 1fb577d..0ce133e 100644 --- a/bin/glsa-check +++ b/bin/glsa-check @@ -16,7 +16,7 @@ try: except ImportError: from output import * -from getopt import getopt,GetoptError +from getopt import getopt, GetoptError __program__ = "glsa-check" __author__ = "Marius Mauch <genone@gentoo.org>" @@ -81,10 +81,10 @@ try: # sanity checking if len(args) <= 0: sys.stderr.write("no option given: what should I do ?\n") - mode="help" + mode = "HELP" elif len(args) > 1: sys.stderr.write("please use only one command per call\n") - mode = "help" + mode = "HELP" else: # in what mode are we ? args = args[0] @@ -95,32 +95,37 @@ try: except GetoptError, e: sys.stderr.write("unknown option given: ") sys.stderr.write(str(e)+"\n") - mode = "help" + mode = "HELP" # we need a set of glsa for most operation modes if len(params) <= 0 and mode in ["fix", "test", "pretend", "dump", "inject", "mail"]: sys.stderr.write("\nno GLSA given, so we'll do nothing for now. \n") sys.stderr.write("If you want to run on all GLSA please tell me so \n") sys.stderr.write("(specify \"all\" as parameter)\n\n") - mode = "help" + mode = "HELP" elif len(params) <= 0 and mode == "list": params.append("new") # show help message -if mode == "help": - sys.stderr.write("\nSyntax: glsa-check <option> [glsa-list]\n\n") +if mode == "help" or mode == "HELP": + msg = "Syntax: glsa-check <option> [glsa-list]\n\n" for m in optionmap: - sys.stderr.write(m[0] + "\t" + m[1] + " \t: " + m[-1] + "\n") + msg += m[0] + "\t" + m[1] + " \t: " + m[-1] + "\n" for o in m[2:-1]: - sys.stderr.write("\t" + o + "\n") - sys.stderr.write("\nglsa-list can contain an arbitrary number of GLSA ids, \n") - sys.stderr.write("filenames containing GLSAs or the special identifiers \n") - sys.stderr.write("'all', 'new' and 'affected'\n") - sys.exit(1) + msg += "\t" + o + "\n" + msg += "\nglsa-list can contain an arbitrary number of GLSA ids, \n" + msg += "filenames containing GLSAs or the special identifiers \n" + msg += "'all', 'new' and 'affected'\n" + if mode == "help": + sys.stdout.write(msg) + sys.exit(0) + else: + sys.stderr.write("\n" + msg) + sys.exit(1) # we need root priviledges for write access if mode in ["fix", "inject"] and os.geteuid() != 0: - sys.stderr.write("\nThis tool needs root access to "+mode+" this GLSA\n\n") + sys.stderr.write(__program__ + ": root access is needed for \""+mode+"\" mode\n") sys.exit(2) # show version and copyright information @@ -219,7 +224,7 @@ def summarylist(myglsalist, fd1=sys.stdout, fd2=sys.stderr): fd1.write("... ") else: for pkg in myglsa.packages.keys(): - mylist = vardb.match(portage.dep_getkey(pkg)) + mylist = vardb.match(portage.dep_getkey(str(pkg))) if len(mylist) > 0: pkg = color(" ".join(mylist)) fd1.write(" " + pkg + " ") @@ -227,7 +232,7 @@ def summarylist(myglsalist, fd1=sys.stdout, fd2=sys.stderr): fd1.write(")") if list_cve: fd1.write(" "+(",".join([r[:13] for r in myglsa.references if r[:4] in ["CAN-", "CVE-"]]))) - fd1.write("\n") + fd1.write("\n") return 0 if mode == "list": @@ -261,6 +266,8 @@ if mode in ["dump", "fix", "inject", "pretend"]: exitcode >>= 8 if exitcode: sys.exit(exitcode) + if len(mergelist): + sys.stdout.write("\n") myglsa.inject() elif mode == "pretend": sys.stdout.write("Checking GLSA "+myid+"\n") @@ -278,10 +285,10 @@ if mode in ["dump", "fix", "inject", "pretend"]: sys.stdout.write(" " + pkg + " (" + oldver + ")\n") else: sys.stdout.write("Nothing to do for this GLSA\n") + sys.stdout.write("\n") elif mode == "inject": sys.stdout.write("injecting " + myid + "\n") myglsa.inject() - sys.stdout.write("\n") sys.exit(0) # test is a bit different as Glsa.test() produces no output @@ -323,12 +330,12 @@ if mode == "mail": # color doesn't make any sense for mail nocolor() - if glsaconfig.has_key("PORTAGE_ELOG_MAILURI"): + if "PORTAGE_ELOG_MAILURI" in glsaconfig: myrecipient = glsaconfig["PORTAGE_ELOG_MAILURI"].split()[0] else: myrecipient = "root@localhost" - if glsaconfig.has_key("PORTAGE_ELOG_MAILFROM"): + if "PORTAGE_ELOG_MAILFROM" in glsaconfig: myfrom = glsaconfig["PORTAGE_ELOG_MAILFROM"] else: myfrom = "glsa-check" |
