diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..61f2dc9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +**/__pycache__/ diff --git a/pyruse/base.py b/pyruse/base.py index b86351b..54eaafb 100644 --- a/pyruse/base.py +++ b/pyruse/base.py @@ -15,6 +15,9 @@ class Step(abc.ABC): def setNextStep(self, obj): self.nextStep = obj + def setStepName(self, name): + self.stepName = name + class Filter(Step): def __init__(self): super().__init__() diff --git a/pyruse/workflow.py b/pyruse/workflow.py index b99f3b9..8b07b9b 100644 --- a/pyruse/workflow.py +++ b/pyruse/workflow.py @@ -1,10 +1,11 @@ # pyruse is intended as a replacement to both fail2ban and epylog # Copyright © 2017–2018 Y. Gablin # Full licensing information in the LICENSE file, or gnu.org/licences/gpl-3.0.txt if the file is missing. -from pyruse import log, module +from pyruse import config, log, module class Workflow: def __init__(self, actions): + self._withDebug = config.Config().asMap().get("debug", False) seen = {} dangling = [] firstStep = None @@ -28,11 +29,13 @@ class Workflow: firstStep = None isPreviousDangling = False isThenCalled = False - for step in actions[label]: + for stepNum, step in enumerate(actions[label]): if isThenCalled: break mod = module.get(step) obj = mod.module + if self._withDebug: + obj.setStepName(label + '[' + str(stepNum) + ']') if mod.thenRun: (seen, dangling) = \ self._branchToChain(obj.setNextStep, mod.thenRun, actions, seen, dangling)