from fabric.api import task, sudo, env, local, hosts from fabric.contrib.project import rsync_project from fabric.contrib.console import confirm @task @hosts("paramiko.org") def upload_docs(): target = "/var/www/paramiko.org" staging = "/tmp/paramiko_docs" sudo("mkdir -p %s" % staging) sudo("chown -R %s %s" % (env.user, staging)) sudo("rm -rf %s/*" % target) rsync_project(local_dir='docs/', remote_dir=staging, delete=True) sudo("cp -R %s/* %s/" % (staging, target)) @task def build_docs(): local("epydoc --no-private -o docs/ paramiko") @task def clean(): local("rm -rf build dist docs") local("rm -f MANIFEST *.log demos/*.log") local("rm -f paramiko/*.pyc") local("rm -f test.log") local("rm -rf paramiko.egg-info") @task def test(): local("python ./test.py") @task def release(): confirm("Only hit Enter if you remembered to update the version!") confirm("Also, did you remember to tag your release?") build_docs() local("python setup.py sdist register upload") upload_docs()