def with_defaults(func):
"""A decorator that sets all defaults for a task."""
@functools.wraps(func)
def decorated(*args, **kwargs):
env.setdefault('use_sudo', True)
env.setdefault('git_branch', 'master')
env.setdefault('python_bin', 'python')
env.setdefault('remote_owner', 'www-data')
env.setdefault('remote_group', 'www-data')
env.setdefault('pip_install_command', 'pip install -r requirements.txt')
env.setdefault('domain_path', "%(base_dir)s/%(app_name)s" %
{'base_dir': env.base_dir,
'app_name': env.app_name})
env.setdefault('current_path', "%(domain_path)s/current" %
{'domain_path': env.domain_path})
env.setdefault('releases_path', "%(domain_path)s/releases" %
{'domain_path': env.domain_path})
env.setdefault('shared_path', "%(domain_path)s/shared" %
{'domain_path': env.domain_path})
if not 'releases' not in env:
if dir_exists(env.releases_path):
env.releases = sorted(run('ls -x %(releases_path)s' % {'releases_path': env.releases_path}).split())
if len(env.releases) >= 1:
env.current_revision = env.releases[-1]
env.current_release = "%(releases_path)s/%(current_revision)s" % \
{'releases_path': env.releases_path,
'current_revision': env.current_revision}
if len(env.releases) > 1:
env.previous_revision = env.releases[-2]
env.previous_release = "%(releases_path)s/%(previous_revision)s" % \
{'releases_path': env.releases_path,
'previous_revision': env.previous_revision}
return func(*args, **kwargs)
return decorated
pyFabricAndCapistrano.py 文件源码
python
阅读 21
收藏 0
点赞 0
评论 0
评论列表
文章目录