From 41d334d9071f0f27433b0a89306504e8b2e4e9ea Mon Sep 17 00:00:00 2001 From: Rustam Zaitov Date: Tue, 5 Nov 2013 01:20:08 +0400 Subject: [PATCH] =?UTF-8?q?=D0=B2=D0=BD=D0=B5=D0=B4=D1=80=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D0=B2=D0=B5=D0=B5=D1=80=20=D0=BF=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B2=D0=B0=D1=80=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=BE=D0=B9=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA?= =?UTF-8?q?=D0=B8=20=D1=81=D1=82=D1=80=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/Core/LineConveyor/LineConveyor.py | 16 ++++++++++++++++ scripts/Core/StepsRunner.py | 13 +++++++------ scripts/taskRunner.py | 21 ++++++++++++++------- 3 files changed, 37 insertions(+), 13 deletions(-) create mode 100644 scripts/Core/LineConveyor/LineConveyor.py diff --git a/scripts/Core/LineConveyor/LineConveyor.py b/scripts/Core/LineConveyor/LineConveyor.py new file mode 100644 index 0000000..3231185 --- /dev/null +++ b/scripts/Core/LineConveyor/LineConveyor.py @@ -0,0 +1,16 @@ +class LineConveyor: + def __init__(self): + self.processors = [] + + def addProcessor(self, processor): + assert processor is not None + + self.processors.append(processor) + + def processLine(self, line): + assert line is not None + + for processor in self.processors: + line = processor.processLine(line) + + return line diff --git a/scripts/Core/StepsRunner.py b/scripts/Core/StepsRunner.py index b805fc7..d106fcc 100644 --- a/scripts/Core/StepsRunner.py +++ b/scripts/Core/StepsRunner.py @@ -12,8 +12,11 @@ from commands.ValueProvider import ValueProvider class StepsRunner: - def __init__(self, config): + def __init__(self, config, compositeLineProcessor): assert config is not None + assert compositeLineProcessor is not None + + self.lineConveyor = compositeLineProcessor self.valueProvider = ValueProvider(config) @@ -36,14 +39,12 @@ class StepsRunner: lines = content.splitlines() for line in lines: - stripped = line.strip(' \t\n\r') + processedLine = self.lineConveyor.processLine(line) - if len(stripped) == 0: - continue - if stripped.startswith("#"): + if len(processedLine) == 0: continue else: - self.processLine(stripped) + self.processLine(processedLine) def processLine(self, line): if self.shCommandBuilder.isShCommand(line): diff --git a/scripts/taskRunner.py b/scripts/taskRunner.py index 7485576..57494de 100644 --- a/scripts/taskRunner.py +++ b/scripts/taskRunner.py @@ -1,4 +1,7 @@ import os +from Core.LineConveyor.CommentRemover import CommentRemover +from Core.LineConveyor.LineConveyor import LineConveyor +from Core.LineConveyor.Stripper import Stripper from utils.BuildConfigProvider import BuildConfigProvider from utils.FromFileSettingsProvider import FromFileSettingsProvider @@ -14,14 +17,18 @@ from Core.StepsRunner import StepsRunner class TaskRunner: def __init__(self): - pass + self.configsProvider = BuildConfigProvider() + self.settingsProvider = FromFileSettingsProvider() + + lineStripper = Stripper() + commentRemover = CommentRemover() + self.lineConveyor = LineConveyor() + self.lineConveyor.addProcessor(lineStripper) + self.lineConveyor.addProcessor(commentRemover) def run(self): - settingsProvider = FromFileSettingsProvider() - settings = settingsProvider.fetchSettings() - - configsProvider = BuildConfigProvider() - buildReadyConfigs = configsProvider.getConfigs(settings) + settings = self.settingsProvider.fetchSettings() + buildReadyConfigs = self.configsProvider.getConfigs(settings) for bc in buildReadyConfigs: self.runConfig(bc) @@ -29,7 +36,7 @@ class TaskRunner: def runConfig(self, config): content = self.getStepsContent(config) - stepsRunner = StepsRunner(config) + stepsRunner = StepsRunner(config, self.lineConveyor) stepsRunner.run(content) def getStepsContent(self, config):