summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorFlorian Weimer <fw@deneb.enyo.de>2007-08-30 09:56:15 +0000
committerFlorian Weimer <fw@deneb.enyo.de>2007-08-30 09:56:15 +0000
commit03e84056a83690682640012cb8584c4ba0c4d5d8 (patch)
tree1ee8fdb50dc5903c778301e7d504389006628f33 /bin
parenta7e60247bb2e581d3051b246fcbd71b0cba10a1f (diff)
* bin/dsa2list:
Permit processing of multiple mail messages git-svn-id: svn+ssh://svn.debian.org/svn/secure-testing@6438 e39458fd-73e7-0310-bf30-c45bca0a0e42
Diffstat (limited to 'bin')
-rw-r--r--bin/dsa2list103
1 files changed, 53 insertions, 50 deletions
diff --git a/bin/dsa2list b/bin/dsa2list
index 9cdd99309a..f7d78bd429 100644
--- a/bin/dsa2list
+++ b/bin/dsa2list
@@ -60,53 +60,56 @@ release_headline_re = re.compile(
r'^Debian GNU/Linux [0-9.]+ (?:\(|alias) ([a-z]+).*')
dscurl_re = re.compile(r'^\s*(http://\S+\.dsc).*')
-if len(sys.argv) > 1:
- print "usage: dsa2list < MESSAGE"
- sys.exit(1)
-
-cve_names = {}
-package_notes = []
-release = ''
-date = ''
-dsa_name = ''
-title = ''
-packages = {}
-for line in sys.stdin.readlines():
- match = re_title.match(line)
- if match:
- (dsa_name, title) = match.groups()
- continue
-
- match = re_date.match(line)
- if match:
- (m, d, y) = match.groups()
- date = "%s %s %s" % (d, m, y)
-
- for cve in re_cve.findall(line):
- cve_names[cve] = True
-
- match = release_headline_re.match(line)
- if match:
- (release,) = match.groups()
- continue
-
- match = dscurl_re.match(line)
- if match:
- assert release
- (source, version) = fetch_dsc(match.groups()[0])
- packages[source] = True
- package_notes.append((release, source, version))
-
-assert date
-assert title
-packages = packages.keys()
-packages.sort()
-print "[%s] DSA-%s %s - %s" % (date, dsa_name, ' '.join(packages), title)
-
-cve_names = cve_names.keys()
-if cve_names:
- cve_names.sort()
- print "\t{%s}" % (' '.join(cve_names))
-
-for (release, source, version) in package_notes:
- print "\t[%s] - %s %s" % (release, source, version)
+def process_file(file):
+ cve_names = {}
+ package_notes = []
+ release = ''
+ date = ''
+ dsa_name = ''
+ title = ''
+ packages = {}
+ for line in file.readlines():
+ match = re_title.match(line)
+ if match:
+ (dsa_name, title) = match.groups()
+ continue
+
+ match = re_date.match(line)
+ if match:
+ (m, d, y) = match.groups()
+ date = "%s %s %s" % (d, m, y)
+
+ for cve in re_cve.findall(line):
+ cve_names[cve] = True
+
+ match = release_headline_re.match(line)
+ if match:
+ (release,) = match.groups()
+ continue
+
+ match = dscurl_re.match(line)
+ if match:
+ assert release
+ (source, version) = fetch_dsc(match.groups()[0])
+ packages[source] = True
+ package_notes.append((release, source, version))
+
+ assert date
+ assert title
+ packages = packages.keys()
+ packages.sort()
+ print "[%s] DSA-%s %s - %s" % (date, dsa_name, ' '.join(packages), title)
+
+ cve_names = cve_names.keys()
+ if cve_names:
+ cve_names.sort()
+ print "\t{%s}" % (' '.join(cve_names))
+
+ for (release, source, version) in package_notes:
+ print "\t[%s] - %s %s" % (release, source, version)
+
+if len(sys.argv) == 1:
+ process_file(sys.stdin)
+else:
+ for x in sys.argv[1:]:
+ process_file(file(x))

© 2014-2024 Faster IT GmbH | imprint | privacy policy