--- 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()