tag = version.scripts_tag
# XXX: turn this into a context
- try:
+ with util.LockDirectory(".scripts-migrate-lock"):
try:
- try:
- os.open(".scripts-migrate-lock", os.O_CREAT | os.O_EXCL)
- except OSError as e:
- if e.errno == errno.EEXIST:
- raise DirectoryLockedError
- elif e.errno == errno.EACCES:
- raise command.PermissionsError(dir)
- raise
if options.force: perform_force(options)
make_repository(sh, options, repo, tag)
check_variables(deployment, options)
shutil.rmtree(".scripts")
if os.path.exists(".git"):
shutil.rmtree(".git")
- finally:
- try:
- os.unlink(".scripts-migrate-lock")
- except OSError:
- pass
def parse_args(argv, baton):
usage = """usage: %prog migrate [ARGS] DIR
both of these directories will be removed.
"""
-class DirectoryLockedError(Error):
- def __init__(self, dir):
- self.dir = dir
- def __str__(self):
- return """
-
-ERROR: Could not acquire lock on directory. Maybe there is
-another migration process running?
-"""
-