Mercurial > hg > MakeItSo
annotate makeitso/python_package/INSTALL.py @ 134:0e18cdf36a0e
make the python package distutils compatible
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Sun, 19 Feb 2012 22:27:42 -0800 |
parents | cd51ef9288ea |
children | 702216c49594 |
rev | line source |
---|---|
133 | 1 #!/usr/bin/env python |
2 | |
3 """ | |
4 installation script for {{project}} | |
5 {{description}} | |
6 """ | |
96
cc17537254d2
add an install script template
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
7 |
133 | 8 import os |
9 import sys | |
10 import urllib2 | |
11 import subprocess | |
12 try: | |
13 from subprocess import check_call as call | |
14 except: | |
15 from subprocess import call | |
96
cc17537254d2
add an install script template
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
16 |
cc17537254d2
add an install script template
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
17 REPO='{{repo}}' |
cc17537254d2
add an install script template
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
18 DEST='{{project}}' # name of the virtualenv |
133 | 19 VIRTUALENV='https://raw.github.com/pypa/virtualenv/develop/virtualenv.py' |
96
cc17537254d2
add an install script template
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
20 |
133 | 21 def which(binary, path=os.environ['PATH']): |
22 dirs = path.split(os.pathsep) | |
23 for dir in dirs: | |
24 if os.path.isfile(os.path.join(dir, fileName)): | |
25 return os.path.join(dir, fileName) | |
26 if os.path.isfile(os.path.join(dir, fileName + ".exe")): | |
27 return os.path.join(dir, fileName + ".exe") | |
28 | |
29 def main(args=sys.argv[1:]): | |
96
cc17537254d2
add an install script template
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
30 |
133 | 31 # create a virtualenv |
32 virtualenv = which('virtualenv') or which('virtualenv.py') | |
33 if virtualenv: | |
34 call([virtualenv, DEST]) | |
35 else: | |
36 process = subproces.Popen([sys.executable, '-', DEST], stdin=subprocess.PIPE) | |
37 process.communicate(stdin=urllib2.urlopen(VIRTUALENV).read()) | |
38 | |
39 # create a src directory | |
40 src = os.path.join(DEST, 'src') | |
41 os.mkdir(src) | |
42 | |
43 # clone the repository | |
44 call(['hg', 'clone', REPO], cwd=src) | |
45 | |
46 """ | |
47 XXX unfinished | |
48 | |
96
cc17537254d2
add an install script template
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
49 hg clone ${REPO} |
cc17537254d2
add an install script template
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
50 cd {{project}} |
cc17537254d2
add an install script template
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
51 python setup.py develop |
133 | 52 """ |