diff --git a/cve_bin_tool/parsers/parse.py b/cve_bin_tool/parsers/parse.py index d342d8c510..91d7b99ced 100644 --- a/cve_bin_tool/parsers/parse.py +++ b/cve_bin_tool/parsers/parse.py @@ -75,6 +75,19 @@ def load_valid_files() -> dict[str, list[type[Parser]]]: valid_files = load_valid_files() +def identify_parsers() -> list: + """Reports names of parsers""" + parsers = [] + for i in BUILTIN_PARSERS.items(): + parser = i[0].split(".")[0] + if parser not in parsers: + parsers.append(parser) + return parsers + + +available_parsers = identify_parsers() + + def parse(filename, output, cve_db, logger): """ Parses the given filename using the appropriate parser. diff --git a/cve_bin_tool/version_scanner.py b/cve_bin_tool/version_scanner.py index 720e6e0962..f889c6eb7f 100644 --- a/cve_bin_tool/version_scanner.py +++ b/cve_bin_tool/version_scanner.py @@ -2,7 +2,6 @@ # SPDX-License-Identifier: GPL-3.0-or-later from __future__ import annotations -import itertools import subprocess import sys from logging import Logger @@ -16,7 +15,7 @@ from cve_bin_tool.extractor import Extractor, TempDirExtractorContext from cve_bin_tool.file import is_binary from cve_bin_tool.log import LOGGER -from cve_bin_tool.parsers.parse import parse, valid_files +from cve_bin_tool.parsers.parse import available_parsers, parse, valid_files from cve_bin_tool.strings import parse_strings from cve_bin_tool.util import ( DirWalk, @@ -137,7 +136,7 @@ def number_of_checkers(self) -> int: @classmethod def available_language_checkers(cls) -> list[str]: """Find Language checkers""" - return list(sorted(map(str, set(itertools.chain(*valid_files.values()))))) + return sorted(available_parsers) def print_language_checkers(self) -> None: """Logs the message that lists the names of the language checkers"""