view makeitso/python_package/INSTALL.py @ 133:cd51ef9288ea

WIP
author Jeff Hammel <jhammel@mozilla.com>
date Thu, 03 Nov 2011 11:00:01 -0700
parents makeitso/python_package/INSTALL.sh@cc17537254d2
children 702216c49594
line wrap: on
line source

#!/usr/bin/env python

"""
installation script for {{project}}
{{description}}
"""

import os
import sys
import urllib2
import subprocess
try:
    from subprocess import check_call as call
except:
    from subprocess import call

REPO='{{repo}}'
DEST='{{project}}' # name of the virtualenv
VIRTUALENV='https://raw.github.com/pypa/virtualenv/develop/virtualenv.py'

def which(binary, path=os.environ['PATH']):
    dirs = path.split(os.pathsep)
    for dir in dirs:
        if os.path.isfile(os.path.join(dir, fileName)):
            return os.path.join(dir, fileName)
        if os.path.isfile(os.path.join(dir, fileName + ".exe")):
            return os.path.join(dir, fileName + ".exe")

def main(args=sys.argv[1:]):

    # create a virtualenv
    virtualenv = which('virtualenv') or which('virtualenv.py')
    if virtualenv:
        call([virtualenv, DEST])
    else:
        process = subproces.Popen([sys.executable, '-', DEST], stdin=subprocess.PIPE)
        process.communicate(stdin=urllib2.urlopen(VIRTUALENV).read())

    # create a src directory
    src = os.path.join(DEST, 'src')
    os.mkdir(src)

    # clone the repository
    call(['hg', 'clone', REPO], cwd=src)

"""
XXX unfinished

hg clone ${REPO}
cd {{project}}
python setup.py develop
"""