# HG changeset patch # User ymh # Date 1433757172 -7200 # Node ID 0d0883c6ec0924fe0b3df952c260625a72ae01cd # Parent d0fb57986ddc55eed5e3355b6d94c9792dabaa08 add collecstatic and migrate to fabfile diff -r d0fb57986ddc -r 0d0883c6ec09 server/sbin/sync/fabfile.py --- a/server/sbin/sync/fabfile.py Mon Jun 08 10:51:13 2015 +0200 +++ b/server/sbin/sync/fabfile.py Mon Jun 08 11:52:52 2015 +0200 @@ -1,13 +1,21 @@ +from distutils.util import strtobool +import os +import shutil +import settings +import tempfile + from fabric.api import env, local, put, run, lcd, task, prefix, sudo from fabric.contrib.files import exists, append, upload_template from fabric.colors import green -import tempfile -import shutil -import os -import settings + +def _prep_bool_arg(arg): + return bool(strtobool(str(arg))) + current_path = os.path.dirname(os.path.realpath(__file__)) +#TODO: add collectatic + def __init(): if not env.get('temp_folder', None): env['temp_folder'] = tempfile.mkdtemp() @@ -46,7 +54,7 @@ run('rm -fr %s' % tmpd) -def deploy(): +def deploy(installonly=False): # figure out the release name and version with lcd(os.path.join(get_version_path(),env.source_rel_path)): dist = local('python setup.py --fullname', capture=True).strip() @@ -63,10 +71,18 @@ # now that all is set up, delete the folder again run('rm -rf /tmp/%s.tar.gz' % dist) - sudo(env.srv_restart_cmd, shell=False) + +def restart_srv(): + sudo(env.srv_restart_cmd, shell=False) + +def apply_deploy(): + with prefix('source %s/bin/activate' % env.srv_venv_path): + run("django-admin migrate --noinput") + run("django-admin collectstatic --noinput --clear") + @task(default=True) -def deploy_version(version='tip'): +def deploy_version(version='tip', installonly=False): env['version'] = version __init() export() @@ -74,4 +90,7 @@ if not exists(env.srv_venv_path): create_virtualenv() deploy() + if not _prep_bool_arg(installonly): + apply_deploy() + restart_srv() __clean()