Реализовал таск раннер. Работает, но команды выполняются дважды

This commit is contained in:
rzaitov 2013-10-31 21:17:35 +04:00
parent b348b35b40
commit 50aad47cf6
7 changed files with 70 additions and 15 deletions

1
scripts/IosSteps.txt Normal file
View File

@ -0,0 +1 @@
sh echo hello from Rustam

View File

@ -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()

View File

@ -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')

View File

@ -0,0 +1 @@
__author__ = 'rzaitov'

View File

@ -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

View File

@ -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'

38
scripts/taskRunner.py Normal file
View File

@ -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()