File: fabfile.py

package info (click to toggle)
python-boto 1.9b-4
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 1,820 kB
  • ctags: 2,583
  • sloc: python: 16,337; makefile: 106
file content (33 lines) | stat: -rw-r--r-- 1,203 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from fabric.operations import sudo, local, put

def deploy(**kwargs):
    remote_path = '/var/www'
    if kwargs.get('remote_path', None):
        remote_path = kwargs['remote_path']
    
    # Update
    local("svn up ../")
    rev = local("svn info | grep Revision")
    rev = rev.replace("Revision: ", "").strip()
    conf = open('source/conf-orig.py', 'r+b').read() 
    open('source/conf.py', 'w+b').write(conf.replace('release = "HEAD"', 'release = "%s"' % rev))
    tmp_folder_name = 'boto-docs.r%s' % rev
    archive_name = '%s.tar.gz' % tmp_folder_name
    
    # Clean
    local("rm -rf %s" % tmp_folder_name)
    local("rm -f %s" % archive_name)
    
    # Build
    local("make html")
    local("mv build/html %s" % tmp_folder_name)
    local("tar zcf %s %s" % (archive_name, tmp_folder_name))
    
    # Deploy
    put(archive_name, '~/')
    sudo("rm -f %s/%s && mv ~/%s %s/%s" % (remote_path, archive_name, archive_name, remote_path, archive_name))
    sudo("cd %s && rm -rf %s && tar zxf %s" % (remote_path, tmp_folder_name, archive_name))
    sudo("cd %s && rm -f boto-docs && ln -s %s boto-docs" % (remote_path, tmp_folder_name))
    
    # Validate
    sudo("ls -al %s" % remote_path)