Реализовал возможность задавать путь к файлу с настройками через параметры к скрипту

This commit is contained in:
rzaitov 2013-11-13 19:54:21 +04:00
parent 00c5f0f03e
commit 78c8568855
2 changed files with 13 additions and 2 deletions

View File

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

View File

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