From a38e6da6f226358ddb2a0870ba2c9ca3864369c0 Mon Sep 17 00:00:00 2001 From: Emilio Pozuelo Monfort Date: Fri, 15 Jun 2018 11:16:22 +0200 Subject: check-syntax: don't hardcode sources Get them from config.json instead. This also simplifies the parse_* functions as there's just a generic one now. --- bin/check-syntax | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) (limited to 'bin/check-syntax') diff --git a/bin/check-syntax b/bin/check-syntax index a4d3f2ec01..115636f81f 100755 --- a/bin/check-syntax +++ b/bin/check-syntax @@ -51,36 +51,38 @@ def construct(c, name): else: f = file(name) return c(name, f) - -def parse_CVE(name): - f = construct(bugs.CVEFile, name) - # Relax syntax checking a bit. - f.no_version_needs_note = False - do_parse(f) +sources = debian_support.getconfig()["sources"] + +def find_source(name): + for source in sources: + if source["name"] == name: + return source -def parse_DSA(name): - do_parse(construct(bugs.DSAFile, name)) + return None -def parse_DTSA(name): - do_parse(construct(bugs.DTSAFile, name)) +def parse_file(name, filename): + source = find_source(name) + cls = source["class"] + cls = getattr(bugs, cls) + f = construct(cls, filename) -file_types = {'CVE' : parse_CVE, - 'DSA' : parse_DSA, - 'DTSA' : parse_DTSA, - 'DLA' : parse_DSA} + if cls == bugs.CVEFile: + # Relax syntax checking a bit. + f.no_version_needs_note = False + + do_parse(f) if len(sys.argv) == 2 and sys.argv[1] == "--get": - l = file_types.keys() - l.sort() + l = [src["name"] for src in sources] print ' '.join(l) sys.exit(0) -if len(sys.argv) <> 3 or not file_types.has_key(sys.argv[1]): - l = file_types.keys() +if len(sys.argv) <> 3 or find_source(sys.argv[1]) == None: + l = [src["name"] for src in sources] l.sort() sys.stderr.write("usage: check-syntax {%s} file-name\n" % '|'.join(l)) sys.exit(1) -file_types[sys.argv[1]](sys.argv[2]) +parse_file(sys.argv[1], sys.argv[2]) -- cgit v1.2.3