diff --git a/scripts/IosSteps.txt b/scripts/IosSteps.txt new file mode 100644 index 0000000..fc25e06 --- /dev/null +++ b/scripts/IosSteps.txt @@ -0,0 +1 @@ +sh echo hello from Rustam \ No newline at end of file diff --git a/scripts/SettingsProvider/FromFileSettingsProvider.py b/scripts/SettingsProvider/FromFileSettingsProvider.py index 7ed0f66..295b173 100644 --- a/scripts/SettingsProvider/FromFileSettingsProvider.py +++ b/scripts/SettingsProvider/FromFileSettingsProvider.py @@ -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() diff --git a/scripts/StepRunner/StepsRunner.py b/scripts/StepRunner/StepsRunner.py new file mode 100644 index 0000000..ceadc70 --- /dev/null +++ b/scripts/StepRunner/StepsRunner.py @@ -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') \ No newline at end of file diff --git a/scripts/StepRunner/__init__.py b/scripts/StepRunner/__init__.py new file mode 100644 index 0000000..cc31abc --- /dev/null +++ b/scripts/StepRunner/__init__.py @@ -0,0 +1 @@ +__author__ = 'rzaitov' diff --git a/scripts/buildRunner.py b/scripts/buildRunner.py deleted file mode 100644 index 8bd6b3a..0000000 --- a/scripts/buildRunner.py +++ /dev/null @@ -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 diff --git a/scripts/settings.txt b/scripts/settings.txt index 039a364..c80f5db 100644 --- a/scripts/settings.txt +++ b/scripts/settings.txt @@ -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' diff --git a/scripts/taskRunner.py b/scripts/taskRunner.py new file mode 100644 index 0000000..e24df71 --- /dev/null +++ b/scripts/taskRunner.py @@ -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()