Добавил возможность определять backup ignore файлы/папки

This commit is contained in:
rzaitov 2013-11-15 20:24:13 +04:00
parent 3f27f5d9ce
commit 73cd858826
15 changed files with 65 additions and 35 deletions

View File

@ -0,0 +1,14 @@
from parsers.ValuesStriper import ValuesStripper
class BaseBackupCommandBuilder:
def __init__(self, ignoreBackupStr):
if ignoreBackupStr:
splitter = ValuesStripper(',')
values = splitter.strip(ignoreBackupStr)
self.ignoreBackup = values
else:
self.ignoreBackup = []
print self.ignoreBackup

View File

@ -1,10 +1,11 @@
from CommandBuilders.BuilderBackupCommands.BaseBackupCommandBuilder import BaseBackupCommandBuilder
from commands.BaseBackupCommand.CreateBackupCommand import CreateBackupCommand
from parsers.ParserBackup.CreateBackupParser import CreateBackupParser
class CreateBackupCommandBuilder:
def __init__(self):
pass
class CreateBackupCommandBuilder(BaseBackupCommandBuilder):
def __init__(self, ignoreBackupStr):
BaseBackupCommandBuilder.__init__(self, ignoreBackupStr)
def isCreateBackup(self, line):
assert line is not None
@ -18,5 +19,5 @@ class CreateBackupCommandBuilder:
parser = CreateBackupParser()
parser.parseLine(line)
command = CreateBackupCommand()
command = CreateBackupCommand(self.ignoreBackup)
return command

View File

@ -1,10 +1,11 @@
from CommandBuilders.BuilderBackupCommands.BaseBackupCommandBuilder import BaseBackupCommandBuilder
from commands.BaseBackupCommand.DeleteBackupCommand import DeleteBackupCommand
from parsers.ParserBackup.DeleteBackupParser import DeleteBackupParser
class DeleteBackupCommandBuilder:
def __init__(self):
pass
class DeleteBackupCommandBuilder(BaseBackupCommandBuilder):
def __init__(self, ignoreBackupStr):
BaseBackupCommandBuilder.__init__(self, ignoreBackupStr)
def isDeleteBackup(self, line):
assert line is not None
@ -20,5 +21,5 @@ class DeleteBackupCommandBuilder:
parser = DeleteBackupParser()
parser.parseLine(line)
command = DeleteBackupCommand()
command = DeleteBackupCommand(self.ignoreBackup)
return command

View File

@ -1,10 +1,11 @@
from CommandBuilders.BuilderBackupCommands.BaseBackupCommandBuilder import BaseBackupCommandBuilder
from commands.BaseBackupCommand.RestoreBackupCommand import RestoreBackupCommand
from parsers.ParserBackup.RestoreBackupParser import RestoreBackupParser
class RestoreBackupCommandBuilder:
def __init__(self):
pass
class RestoreBackupCommandBuilder(BaseBackupCommandBuilder):
def __init__(self, ignoreBackupStr):
BaseBackupCommandBuilder.__init__(self, ignoreBackupStr)
def isRestoreBackup(self, line):
assert line is not None
@ -20,5 +21,5 @@ class RestoreBackupCommandBuilder:
parser = RestoreBackupParser()
parser.parseLine(line)
command = RestoreBackupCommand()
command = RestoreBackupCommand(self.ignoreBackup)
return command

View File

@ -0,0 +1 @@
__author__ = 'rzaitov'

View File

@ -1,7 +1,9 @@
from CommandBuilders.BuilderBackupCommands.CreateBackupCommandBuilder import CreateBackupCommandBuilder
from CommandBuilders.BuilderBackupCommands.DeleteBackupCommandBuilder import DeleteBackupCommandBuilder
from CommandBuilders.BuilderBackupCommands.RestoreBackupCommandBuilder import RestoreBackupCommandBuilder
from CommandBuilders.CleanBuildCommandBuilder import CleanBuildCommandBuilder
from CommandBuilders.CopyCommandBuilder import CopyCommandBuilder
from CommandBuilders.CreateBackupCommandBuilder import CreateBackupCommandBuilder
from CommandBuilders.DeleteBackupCommandBuilder import DeleteBackupCommandBuilder
from CommandBuilders.InstallProfileCommandBuilder import InstallProfileCommandBuilder
from CommandBuilders.MakeDirsCommandBuilder import MakeDirsCommandBuilder
from CommandBuilders.PatchCsprojCommandBuilder import PatchCsprojCommandBuilder
@ -9,7 +11,6 @@ from CommandBuilders.PatchInfoPlistArrayCommandBuilder import PatchInfoPlistArra
from CommandBuilders.PatchInfoplistCommandBuilder import PatchInfoplistCommandBuilder
from CommandBuilders.PatchManifestCommandBuilder import PatchManifestCommandBuilder
from CommandBuilders.RemoveProjectCommandBuilder import RemoveProjectCommandBuilder
from CommandBuilders.RestoreBackupCommandBuilder import RestoreBackupCommandBuilder
from CommandBuilders.ShCommandBuilder import ShCommandBuilder
from CommandBuilders.SignApkBuilder import SignApkCommandBuilder
from CommandBuilders.TestflightCommandBuilder import TestflightCommandBuilder
@ -26,9 +27,6 @@ class StepsRunner:
self.shCommandBuilder = ShCommandBuilder()
self.removeProjectBuilder = RemoveProjectCommandBuilder()
self.createBackupBuilder = CreateBackupCommandBuilder()
self.restoreFromBackupBuilder = RestoreBackupCommandBuilder()
self.deleteBackupBuilder = DeleteBackupCommandBuilder()
self.createDirs = MakeDirsCommandBuilder()
self.patchCsproj = PatchCsprojCommandBuilder()
self.patchInfoPlist = PatchInfoplistCommandBuilder(self.valueProvider)
@ -37,6 +35,12 @@ class StepsRunner:
self.copyBuilder = CopyCommandBuilder()
self.testflightBuilder = TestflightCommandBuilder()
ignoreBackup = config.get('ignore_backup', None)
self.createBackupBuilder = CreateBackupCommandBuilder(ignoreBackup)
self.restoreFromBackupBuilder = RestoreBackupCommandBuilder(ignoreBackup)
self.deleteBackupBuilder = DeleteBackupCommandBuilder(ignoreBackup)
profilePrefix = config['project_name']
self.installProfileBuilder = InstallProfileCommandBuilder(profilePrefix)

View File

@ -1,8 +1,8 @@
from CommandBuilders.CreateBackupCommandBuilder import CreateBackupCommandBuilder
from CommandBuilders.BuilderBackupCommands.CreateBackupCommandBuilder import CreateBackupCommandBuilder
line = "create backup"
cmdBuilder = CreateBackupCommandBuilder()
cmdBuilder = CreateBackupCommandBuilder(None)
command = cmdBuilder.getCommandFor(line)
command.execute()

View File

@ -1,8 +1,8 @@
from CommandBuilders.DeleteBackupCommandBuilder import DeleteBackupCommandBuilder
from CommandBuilders.BuilderBackupCommands.DeleteBackupCommandBuilder import DeleteBackupCommandBuilder
line = "delete backup"
cmdBuilder = DeleteBackupCommandBuilder()
cmdBuilder = DeleteBackupCommandBuilder(None)
command = cmdBuilder.getCommandFor(line)
command.execute()

View File

@ -1,8 +1,8 @@
from CommandBuilders.RestoreBackupCommandBuilder import RestoreBackupCommandBuilder
from CommandBuilders.BuilderBackupCommands.RestoreBackupCommandBuilder import RestoreBackupCommandBuilder
line = "restore from backup"
builder = RestoreBackupCommandBuilder()
builder = RestoreBackupCommandBuilder(None)
command = builder.getCommandFor(line)
command.execute()

View File

@ -4,8 +4,14 @@ from commands.CommandBase import CommandBase
class BaseBackupCommand(CommandBase):
def __init__(self):
def __init__(self, ignoreBackup):
CommandBase.__init__(self)
assert ignoreBackup is not None
self.backupIgnore = ['.git', '.gitignore', '.DS_Store', 'backup']
self.backupIgnore.extend(ignoreBackup)
self.folderPath = '.'
# вычислять абсолютные пути надо на этапе создания комманды
@ -13,7 +19,6 @@ class BaseBackupCommand(CommandBase):
self.srcAbsDirPath = self.getAbsSrc()
self.backupDirAbsPath = self.getAbsDst()
self.backupIgnore = ['.git', '.gitignore', '.DS_Store', 'backup']
def getAbsSrc(self):
return self.getAbs(self.folderPath)

View File

@ -4,8 +4,8 @@ from commands.BaseBackupCommand.BaseBackupCommand import BaseBackupCommand
class CreateBackupCommand(BaseBackupCommand):
def __init__(self):
BaseBackupCommand.__init__(self)
def __init__(self, ignoreBackup):
BaseBackupCommand.__init__(self, ignoreBackup)
def execute(self):
#if os.path.exists(self.backupDirAbsPath):

View File

@ -4,8 +4,8 @@ from commands.BaseBackupCommand.BaseBackupCommand import BaseBackupCommand
class DeleteBackupCommand(BaseBackupCommand):
def __init__(self):
BaseBackupCommand.__init__(self)
def __init__(self, ignoreBackup):
BaseBackupCommand.__init__(self, ignoreBackup)
def execute(self):
if not os.path.exists(self.backupDirAbsPath):

View File

@ -4,8 +4,8 @@ from commands.BaseBackupCommand.BaseBackupCommand import BaseBackupCommand
class RestoreBackupCommand(BaseBackupCommand):
def __init__(self):
BaseBackupCommand.__init__(self)
def __init__(self, ignoreBackup):
BaseBackupCommand.__init__(self, ignoreBackup)
def execute(self):
if not os.path.exists(self.backupDirAbsPath):

View File

@ -1,11 +1,13 @@
class ValuesStripper:
def __init__(self):
pass
def __init__(self, separator=':'):
assert separator is not None
self.separator = separator
def strip(self, valueStr):
assert valueStr is not None
rawValues = valueStr.split(':')
rawValues = valueStr.split(self.separator)
values = [name.strip() for name in rawValues]
return values

View File

@ -4,6 +4,7 @@ version=0.0.0 # комментарий в тойже строке
configs = 'appstore, staging, android'
project_name = CoolApp
sln_config = Release|iPhone
backup_ignore = .git, .gitignore, .DS_Store, backup, artifacts
# ios platform settings
#ios.steps = 'scripts/IosSteps.txt'