BuildScript/scripts/TouchinBuild/utils/SettingsProvider/CmdArgsOverriderSettingsPro...

35 lines
888 B
Python

from Core.SettingsProviderBase import SettingsProviderBase
from parsers.SettingsParser.SettingsParser import SettingsParser
class CmdArgsOverriderSettingsProvider(SettingsProviderBase):
def __init__(self, settingsProvider, settingLines):
SettingsProviderBase.__init__(self)
assert settingsProvider is not None
self.inner = settingsProvider
self.overrideSettings = settingLines
def fetchSettings(self):
settings = self.inner.fetchSettings()
if self.overrideSettings:
for s in self.overrideSettings:
line = self.normalizeLine(s)
settingParser = SettingsParser(settings)
settingParser.processLine(line)
return settings
def normalizeLine(self, line):
assert line is not None
assert '=' in line
index = line.find('=')
path = line[0:index]
value = line[index + 1:]
normalizedLine = "{0} = '{1}'".format(path, value)
return normalizedLine