From 1bc2c0b9302e68c33533cd2c8f6209acd92fc763 Mon Sep 17 00:00:00 2001 From: Thomas Patzke Date: Mon, 3 Feb 2020 22:16:00 +0100 Subject: [PATCH] Deduplication of backend list Fixes issue #609. Added backend list debug output (class name). --- tools/sigma/backends/discovery.py | 2 +- tools/sigmac | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/sigma/backends/discovery.py b/tools/sigma/backends/discovery.py index 399ce79e6..fdb2347f2 100644 --- a/tools/sigma/backends/discovery.py +++ b/tools/sigma/backends/discovery.py @@ -25,7 +25,7 @@ from sigma.tools import getAllSubclasses, getClassDict def getBackendList(): """Return list of backend classes""" path = os.path.dirname(__file__) - return getAllSubclasses(path, "backends", BaseBackend) + return frozenset(getAllSubclasses(path, "backends", BaseBackend)) def getBackendDict(): return getClassDict(getBackendList()) diff --git a/tools/sigmac b/tools/sigmac index 4bb1a15bd..a8e54dbd0 100755 --- a/tools/sigmac +++ b/tools/sigmac @@ -126,7 +126,10 @@ if cmdargs.debug: # pragma: no cover def list_backends(): for backend in backends.getBackendList(): - print("{:>15} : {}".format(backend.identifier, backend.__doc__)) + if cmdargs.debug: + print("{:>15} : {} ({})".format(backend.identifier, backend.__doc__, backend.__name__)) + else: + print("{:>15} : {}".format(backend.identifier, backend.__doc__)) def list_configurations(backend=None): for conf_id, title, backends in scm.list():