внедрил конвеер предварительной обработки строк
This commit is contained in:
parent
5ce8eb0269
commit
41d334d907
|
|
@ -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
|
||||
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Reference in New Issue