Переписал создание команды патчинга csproj файлов

This commit is contained in:
rzaitov
2013-10-30 16:15:57 +04:00
parent 97f941ec9a
commit 67b5fcf73a
9 changed files with 103 additions and 123 deletions
+19
View File
@@ -0,0 +1,19 @@
import utils.csproj.patcher as csproj
class PatchCsprojCommand():
def __init__(self, csprojAbsPath, key, value, slnConfig):
assert csprojAbsPath is not None
assert key is not None
assert value is not None
assert slnConfig is not None
self.__csprojAbsPath = csprojAbsPath
self.__key = key
self.__value = value
self.__slnConfig = slnConfig
def execute(self):
patcher = csproj.Patcher(self.__csprojAbsPath)
dict = { self.__key : self.__value }
patcher.AddOrReplace(dict, self.__slnConfig)
-12
View File
@@ -1,12 +0,0 @@
from commands.patch_project import PatchProject
import utils.csproj.patcher as csproj
class PatchCsproj(PatchProject):
def __init__(self, config, path_provider, value_provider):
PatchProject.__init__(self, config, path_provider, value_provider, 'csproj')
def _patchProject(self, project):
csproj_abs_path = self._path_provider.resolveAbsPath(project.rel_path)
patcher = csproj.Patcher(csproj_abs_path)
patcher.AddOrReplace(project.settings, self._config['sln_config'])
-47
View File
@@ -1,47 +0,0 @@
import commands.build_command as bcmd
from parser.ProjectParser.ProjectParser import ProjectParser
class PatchProject(bcmd.BuildCommand):
def __init__(self, config, path_provider, value_provider, command_token):
assert path_provider is not None
assert value_provider is not None
assert command_token is not None
bcmd.BuildCommand.__init__(self, config, command_token)
self._path_provider = path_provider
self._value_provider = value_provider
self._command_token = command_token
self._parser = None
self._parseConfig()
def _parseConfig(self):
csproj_keys = self.FetchAllKeysFromConfig()
line_collection = self.__fetchLineCollection(csproj_keys)
self.__fillPatchSettings(line_collection)
def __fetchLineCollection(self, keys):
assert keys is not None
line_collection = ["{0} '{1}'".format(k, self._config[k]) for k in keys]
return line_collection
def __fillPatchSettings(self, line_collection):
assert line_collection is not None
self._parser = ProjectParser(line_collection, self._value_provider, self._command_token)
self._parser.parse()
def execute(self):
projects = self._parser.projects_dict.values()
for project in projects:
self._patchProject(project)
def _patchProject(self, project):
print 'Do nothing'
# override this method to do useful work
pass