diff --git a/scripts/TouchinBuild/taskRunner.py b/scripts/TouchinBuild/taskRunner.py index d1f49cb..faa9fb3 100755 --- a/scripts/TouchinBuild/taskRunner.py +++ b/scripts/TouchinBuild/taskRunner.py @@ -78,7 +78,11 @@ class TaskRunner: if __name__ == "__main__": parser = argparse.ArgumentParser() - overrideArgs = parser.parse_known_args()[1] + parser.add_argument('--settings', required=False) + allArgs = parser.parse_known_args() + + knownArgs = allArgs[0] + overrideArgs = allArgs[1] # компоную препроцессор для индивидуальной обработки строк (удаление комментариев и ведущих пробельных символов) lineStripper = Stripper() @@ -88,7 +92,7 @@ if __name__ == "__main__": linePreprocessor.addProcessor(lineStripper) # TODO: перенести в корень комапановки - settingsPath = 'scripts/settings.txt' + settingsPath = knownArgs.settings or 'settings.txt' fromFileSettingsProvider = FromFileSettingsProvider(settingsPath, linePreprocessor) overrideWithCmdSetProvider = CmdArgsOverriderSettingsProvider(fromFileSettingsProvider, overrideArgs, linePreprocessor) diff --git a/scripts/TouchinBuild/utils/SettingsProvider/FromFileSettingsProvider.py b/scripts/TouchinBuild/utils/SettingsProvider/FromFileSettingsProvider.py index 6df08db..69618c2 100644 --- a/scripts/TouchinBuild/utils/SettingsProvider/FromFileSettingsProvider.py +++ b/scripts/TouchinBuild/utils/SettingsProvider/FromFileSettingsProvider.py @@ -1,3 +1,4 @@ +import os from Core.SettingsProviderBase import SettingsProviderBase from parsers.SettingsParser.SettingsParser import SettingsParser @@ -13,6 +14,12 @@ class FromFileSettingsProvider(SettingsProviderBase): self.compositeLineProcessor = compositeLineProcessor def fetchSettings(self): + if not os.path.exists(self.pathToSettings): + raise Exception('settings file {0} not found'.format(self.pathToSettings)) + + if not os.path.isfile(self.pathToSettings): + raise Exception('{0} is not a file'.format(self.pathToSettings)) + settingsFile = open(self.pathToSettings) content = settingsFile.read()