create twistd iro plugin.
from fabric.api import local, run, env
from fabric.operations import put
from iro import __version__
import ngdatabase
ngmodules = {"directory": "/home/hefee/hg/ngmod/init",
"version":ngdatabase.__version__}
def vbox():
env.hosts = ['192.168.56.101']
env.directory = '/home/hefee/iro/'
env.activate = 'source /home/hefee/iro/virtualenv/bin/activate'
env.deploy_user = 'hefee'
def hal():
env.hosts = ['sandy@hal.netzguerilla.net']
env.directory = "iro"
def prepare_deploy():
local("python setup.py sdist")
def virtualenv(cmd):
run("%s && %s" % (env.activate, cmd))
def deploy():
prepare_deploy()
put("dist/iro-%s.tar.gz"%__version__,"%s/dist/"%env.directory)
put("%(directory)s/dist/ngmodules-%(version)s-py2.7.egg"%ngmodules,"%s/dist/"%env.directory)
virtualenv("easy_install %s/dist/ngmodules-%s-py2.7.egg"%(env.directory,ngmodules["version"]))
virtualenv("pip uninstall -y iro")
virtualenv("pip install %s/dist/iro-%s.tar.gz"%(env.directory,__version__))
def prepare_tests():
put("tests/*","%s/tests/"%env.directory)
def startserver():
run("cd %s && tar -xzf dist/iro-%s.tar.gz"%(env.directory,__version__))
virtualenv("twistd -ny %s/iro-%s/extras/iro.tac"%(env.directory,__version__))
def testserver():
prepare_tests()
virtualenv("python %s/tests/xmlrpc.py"%env.directory)
def cleandoc():
local("rm -rf _build/* web/dev/* web/*.html")
def sphinxdoc():
local("sphinx-build -b html -d _build/doctrees doc web/dev/")
def createweb():
prepare_deploy()
cleandoc()
local("mv dist/iro-%s.tar.gz web/files/"%__version__)
local("python createdoc.py")
sphinxdoc()
local("tar -czf web.tar.gz web")
def pushweb():
put("web.tar.gz","/tmp/")
run("tar -czf backup/iro.tar.gz iro/*")
run("tar -xzf /tmp/web.tar.gz")
run("rm -r iro/*")
run("mv web/* %s/"%env.directory)
run("rmdir web")
run("rm /tmp/web.tar.gz")
def web():
createweb()
pushweb()