Реализовал таск раннер. Работает, но команды выполняются дважды
This commit is contained in:
parent
b348b35b40
commit
50aad47cf6
|
|
@ -0,0 +1 @@
|
|||
sh echo hello from Rustam
|
||||
|
|
@ -4,7 +4,7 @@ from parser.SettingsParser.SettingsParser import SettingsParser
|
|||
|
||||
class FromFileSettingsProvider:
|
||||
def fetchSettings(self):
|
||||
settingsFile = open('settings.txt')
|
||||
settingsFile = open('scripts/settings.txt')
|
||||
content = settingsFile.read()
|
||||
|
||||
parser = SettingsParser()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
from CommandBuilders.ShCommandBuilder import ShCommandBuilder
|
||||
|
||||
|
||||
class StepsRunner:
|
||||
def __init__(self):
|
||||
self.shCommandBuilder = ShCommandBuilder()
|
||||
|
||||
def run(self, content):
|
||||
assert content is not None
|
||||
|
||||
lines = content.splitlines()
|
||||
for line in lines:
|
||||
stripped = line.strip(' \t\n\r')
|
||||
|
||||
if len(stripped) == 0:
|
||||
continue
|
||||
if stripped.startswith("#"):
|
||||
continue
|
||||
|
||||
self.processLine(stripped)
|
||||
|
||||
def processLine(self, line):
|
||||
if self.shCommandBuilder.isShCommand(line):
|
||||
cmd = self.shCommandBuilder.getCommandFor(line)
|
||||
cmd.execute()
|
||||
else:
|
||||
raise Exception('unrecognised step')
|
||||
|
|
@ -0,0 +1 @@
|
|||
__author__ = 'rzaitov'
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
from SettingsProvider.FromFileSettingsProvider import FromFileSettingsProvider
|
||||
from utils.configs.BuildConfigProvider import BuildConfigProvider
|
||||
|
||||
settingsProvider = FromFileSettingsProvider()
|
||||
settings = settingsProvider.fetchSettings()
|
||||
|
||||
buildReadyConfigs = []
|
||||
configsProvider = BuildConfigProvider()
|
||||
configsProvider.getBuildReadyConfigs(settings, buildReadyConfigs)
|
||||
|
||||
for bc in buildReadyConfigs:
|
||||
print bc
|
||||
|
|
@ -3,10 +3,10 @@ build_tool = '/Applications/Xamarin\ Studio.app/Contents/MacOS/mdtool'
|
|||
version = '0.0.0'
|
||||
|
||||
# ios platform settings
|
||||
ios.steps = 'IosSteps.txt'
|
||||
ios.steps = 'scripts/IosSteps.txt'
|
||||
|
||||
# android platform settings
|
||||
android.steps = 'AndroidSteps.txt'
|
||||
# android.steps = 'AndroidSteps.txt'
|
||||
|
||||
# config settings
|
||||
ios.appstore.build_ready = 'true'
|
||||
|
|
|
|||
|
|
@ -0,0 +1,38 @@
|
|||
import os
|
||||
scriptFilePath = os.path.abspath(__file__)
|
||||
|
||||
scriptDir = os.path.dirname(scriptFilePath)
|
||||
baseDir = os.path.join(scriptDir, os.pardir)
|
||||
|
||||
os.chdir(baseDir)
|
||||
|
||||
from SettingsProvider.FromFileSettingsProvider import FromFileSettingsProvider
|
||||
from StepRunner.StepsRunner import StepsRunner
|
||||
from utils.configs.BuildConfigProvider import BuildConfigProvider
|
||||
|
||||
class TaskRunner:
|
||||
def run(self):
|
||||
settingsProvider = FromFileSettingsProvider()
|
||||
settings = settingsProvider.fetchSettings()
|
||||
|
||||
configsProvider = BuildConfigProvider()
|
||||
buildReadyConfigs = configsProvider.getConfigs(settings)
|
||||
|
||||
for bc in buildReadyConfigs:
|
||||
self.runConfig(bc)
|
||||
|
||||
def runConfig(self, config):
|
||||
content = self.getStepsContent(config)
|
||||
|
||||
stepsRunner = StepsRunner()
|
||||
stepsRunner.run(content)
|
||||
|
||||
def getStepsContent(self, config):
|
||||
pathToSteps = config['steps']
|
||||
stepsFile = open(pathToSteps)
|
||||
|
||||
content = stepsFile.read()
|
||||
return content
|
||||
|
||||
runner = TaskRunner()
|
||||
runner.run()
|
||||
Loading…
Reference in New Issue