BuildScript/scripts/TouchinBuild/utils/SettingsProvider/FromFileSettingsProvider.py

30 lines
919 B
Python

import os
from Core.SettingsProviderBase import SettingsProviderBase
from parsers.SettingsParser.SettingsParser import SettingsParser
class FromFileSettingsProvider(SettingsProviderBase):
def __init__(self, pathToSettings, compositeLineProcessor):
SettingsProviderBase.__init__(self)
assert pathToSettings is not None
assert compositeLineProcessor is not None
self.pathToSettings = pathToSettings
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()
parser = SettingsParser(self.compositeLineProcessor, None)
parser.parse(content)
return parser.settings