"""subweb deployment package. Always prefix a task with the appropriate setup. Examples: $ fab setups.stage deploy $ fab setups.production helpers.id $ fab setups.prod helpers.load_fixture:fixtures/flatpages.json """ from fabric.api import * from fabfile import helpers from fabfile import setups @task def deploy(): """Deploys the project. Updates the sources, links the appropriate settings, collects the static files and synchronizes/migrates the database. Loading fixtures needs to be done manually. """ helpers.update_project() helpers.install_requirements() helpers.link_settings() helpers.collect_static() helpers.manage('supervisor stop gunicorn') helpers.syncdb() helpers.migrate() helpers.manage('supervisor start gunicorn') @task def supervisor(): """Access to the supervisor shell. """ helpers.manage('supervisor shell')