I think what Carlton is looking for is a little different, though I do like your method. I think I have the same needs as Carlton. Likewise, I'm running a Django project with multiple servers acting in different roles. Fabric's roles are great to handle that. So I currently have something like this:
def production(): env.roledefs['httpd'] = 'mywebserver.example.com' env.roledefs['db'] = 'mydbserver.example.com' env.roledefs['otherservices'] = 'otherservices.example.com' @roles(['httpd']) def update_django_project(): run('my_update_routine...') @roles(['db']) def update_db(): run('my_db_actions...') @roles(['otherservices']) def update_services(): run('my_services_stuff...') Right now, I have to run these sequentially from the command prompt, since the decorators don't seem to work within another method. $ fab production update_django_project $ fab production update_db $ fab production update_services What I'd love, and I suspect Carlton would as well, is the ability to wrap all those up in a single function def deploy(): update_django_project() update_db() update_services() And thus be able to deploy with one line $ fab production deploy - Dan _______________________________________________ Fab-user mailing list Fab-user@nongnu.org http://lists.nongnu.org/mailman/listinfo/fab-user