From 1d8cd454b236881f84fceac64141f329d047d559 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Marti=CC=81n?= Date: Mon, 25 Aug 2014 18:02:14 +0200 Subject: [PATCH] Updated fabfile --- fabfile.py | 138 ++++++----------------------------------------------- 1 file changed, 15 insertions(+), 123 deletions(-) diff --git a/fabfile.py b/fabfile.py index e3055b5..2c991e0 100644 --- a/fabfile.py +++ b/fabfile.py @@ -1,6 +1,7 @@ from __future__ import with_statement, print_function from os.path import dirname, abspath, join from os.path import exists as os_exists +from os import getcwd from fabric.api import * from fabric.context_managers import settings, cd @@ -14,23 +15,9 @@ from fabric.operations import local # env.LOCAL_PATH = dirname(abspath(__file__)) -# -# HOSTS -# -HOSTS = { - 'local': { - 'host': '127.0.0.1', - 'path': env.LOCAL_PATH, - }, - 'dev': { - 'host': 'dev', - 'path': '~', - 'user': 'app', - } -} if not env.hosts: - env.hosts = ['local'] + env.hosts = ['localhost'] # Doctor checkups DOCTOR = { @@ -38,39 +25,6 @@ DOCTOR = { } -# -# HELPERS -# -def get_host_string(host_config): - host_string = '' - if 'user' in host_config: - host_string += '{}@'.format(host_config['user']) - - host_string += host_config['host'] - - if 'port' in host_config: - host_string += ':{}'.format(host_config['port']) - - return host_string - - -def get_host_app_environment(): - """ - Get remote $ENVIRONMENT variable value. - Default: local - """ - # In case we're setting up a new host we need this defined - app_environment = 'local' - try: - ssh_io = run('echo -e "\n$ENVIRONMENT"', quiet=True).split()[1] - except IndexError: - ssh_io = 'local' - if ssh_io and exists(join(env.LOCAL_PATH, 'config', ssh_io)): - app_environment = ssh_io - - return app_environment - - # # CONTEXT MANAGERS # @@ -78,35 +32,12 @@ def virtualenv(): """ Activates virtualenv first """ - return prefix( - 'source {}/.virtualenv/bin/activate'.format( - env.host_config['path'] - ) - ) - - -# -# DECORATORS -# -def task_environment(method): - """ - Retrieves host based configuration and app_environment from the host - and automatically CDs into the specified path - """ - def wrapper(*args, **kwargs): - env.host_config = HOSTS[env.host] - with settings(host_string=get_host_string(env.host_config)): - env.appenv = get_host_app_environment() - - with cd(env.host_config['path']): - return method(*args, **kwargs) - return wrapper + return prefix('source .virtualenv/bin/activate') # # TASKS # -@task_environment @task def setup_environment(): """ @@ -117,7 +48,6 @@ def setup_environment(): execute(setup_database) -@task_environment @task def setup_virtualenv(): """ @@ -133,7 +63,6 @@ def setup_virtualenv(): env.appenv)) -@task_environment @task def setup_tools(): # Setup frontend tools @@ -141,7 +70,6 @@ def setup_tools(): run('npm install') -@task_environment @task def setup_database(): """ @@ -154,28 +82,6 @@ def setup_database(): run('python manage.py migrate') -@task_environment -@task -def set_environment(): - env_type = prompt('Environment type?') - bashrc = run('cat $HOME/.bashrc', quiet=True) - if 'export ENVIRONMENT=`cat $HOME/.environment`' not in bashrc: - print(red('Error: .bashrc is not properly configured!')) - run("echo export ENVIRONMENT=\$\(cat $HOME/.environment\) " - ">> .bash_profile") - run('echo {} > .environment'.format(env_type)) - - -@task_environment -@task -def shell(): - """ - Opens a shell to the given host - """ - open_shell('cd {}'.format(env.host_config['path'])) - - -@task_environment @task def doctor(): print(yellow('Checking for software:')) @@ -191,57 +97,43 @@ def doctor(): # # LOCAL ONLY # -@task_environment @task -@hosts(['local']) +@hosts(['localhost']) def runserver(): """ Executes local development server """ with virtualenv(): - run('python manage.py runserver 0.0.0.0:8000') + local('python manage.py runserver 0.0.0.0:8000') -@task_environment @task def clean_pyc(): - run('find . -name "*.pyc" -exec rm -rf {} \;') + local('find . -name "*.pyc" -exec rm -rf {} \;') -@task_environment @task -@hosts(['local']) +@hosts(['localhost']) def rungrunt(): """ Executes grunt """ - run('grunt --force') + local('grunt --force') -@task_environment @task -@hosts(['local']) +@hosts(['localhost']) def makemessages(): """ Executes django-admin makemessages where needed """ - with cd('shelfzilla'): - if not exists('locale'): - run('mkdir locale') - with virtualenv(): - run('django-admin.py makemessages -l es', quiet=True) + with virtualenv(): + local('cd shelfzilla && django-admin.py makemessages -l es') - """ - apps = ['homepage', 'landing', 'manga', 'users'] - for app in apps: - with cd('shelfzilla/apps/{}'.format(app)): - if not exists('locale'): - run('mkdir locale') - with virtualenv(): - run('django-admin.py makemessages -l es', quiet=True) - """ -@task_environment +# +# BACKUPS +# @task def clean_backups(BCK_BASE_PATH='/backups/sql', DAYS='30'): """ @@ -251,7 +143,7 @@ def clean_backups(BCK_BASE_PATH='/backups/sql', DAYS='30'): with settings(hide('warnings', 'running', 'stdout', 'stderr')): local('find %s -mtime +%s -exec rm -rf {} \;' % (BCK_BASE_PATH, DAYS)) -@task_environment + @task def backup(): """