diff --git a/fabfile.py b/fabfile.py new file mode 100755 index 0000000000000000000000000000000000000000..0636cd3980a10b2bf82b5ec8f5e7596d732c3b4a --- /dev/null +++ b/fabfile.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +'''Download/sync to git repository +Create/update virtualenv +django syncdb collectstatic''' + +import os +from fabric.api import env, local, run, settings, cd, lcd, sudo +import sys +if sys.version_info[:2] == (2, 6): + from contextlib import nested + +name = 'flyers' +repository = 'http://git.domainepublic.net/git/%s.git' % name +directory = os.path.abspath(os.path.join(os.path.dirname(__file__), name)) + + +def prod(): + env.user = 'chris' + env.hosts = ['domainepublic.net'] + env.port = 3265 + global directory + directory = '/var/alternc/html/c/chris/test' + + +def deploy_remote(): + with settings(warn_only=True): + if sudo("test -d %s" % directory).failed: + sudo("git clone %s %s" % (repository, directory)) + with settings(warn_only=True), cd(directory): + if sudo("test -d %s/env" % directory).failed: + sudo('virtualenv env') + run('echo "currently web folders are not owned by their owners"') + with cd(directory): + sudo('git pull') + sudo('touch %s/wsgi.py' % name) + #sudo('chown -R www-data .') + sudo('mkdir -p media/uploads') + sudo('env/bin/pip install -r requirements.txt') + sudo('env/bin/python manage.py collectstatic --noinput') + sudo('env/bin/python manage.py syncdb --noinput') + + +def deploy_local(): + with settings(warn_only=True): + if local("test -d %s" % directory).failed: + local("git clone %s %s" % (repository, directory)) + with lcd(directory): + local('git pull') + local('touch %s/wsgi.py' % name) + + +def deploy(): + if env.hosts: + deploy_remote() + else: + deploy_local() + + +if __name__ == "__main__": + deploy() diff --git a/site.fcgi b/site.fcgi index b125bb522d8bc3bb327803d63e7012d99fb2b36d..966f2bec91d0572dc1cc556891620189a58663b1 100755 --- a/site.fcgi +++ b/site.fcgi @@ -3,9 +3,9 @@ fastcgiconfig for django-flyer. """ import os -path = os.path.dirname(os.path.realpath(__file__)) +#path = os.path.dirname(os.path.realpath(__file__)) #sys.path.insert(0, path) #sys.path.insert(1, os.path.join('path/virtualenv')) os.environ['DJANGO_SETTINGS_MODULE'] = "flyers.settings" from django.core.servers.fastcgi import runfastcgi -runfastcgi(method="threaded", daemonize="false") +runfastcgi(method="threaded")