--- a/sbin/create_python_env.py Tue May 25 19:06:11 2010 +0200
+++ b/sbin/create_python_env.py Mon May 31 11:14:39 2010 +0200
@@ -1,6 +1,14 @@
"""
-Call this like ``python fassembler/create-venv-script.py``; it will
-refresh the fassembler-boot.py script
+Call this like ``python fassembler/create_python_env.py``; it will
+refresh the blinkster-boot.py script
+
+-prerequisite:
+
+- virtualenv
+- distribute
+- psycopg2 requires the PostgreSQL libpq libraries and the pg_config utility
+
+
"""
import os
import subprocess
@@ -21,12 +29,10 @@
EXTRA_TEXT = """
-FASS_SVN_LOCATION = '/'.join('$HeadURL: $'[len('HeadURL')+2:-1].strip().split('/')[:-1])
-if not FASS_SVN_LOCATION:
- # Happens when this is trunk
- FASS_SVN_LOCATION = 'https://svn.openplans.org/svn/fassembler/trunk'
import shutil
+import tarfile
+import urllib
def extend_parser(parser):
parser.add_option(
@@ -42,53 +48,59 @@
# We're actually going to build the venv in a subdirectory
base_dir = args[0]
- args[0] = join(base_dir, 'fassembler')
+ if len(args) > 1:
+ venv_name = args[1]
+ else:
+ venv_name = "blinkster"
+
+ args[0] = join(base_dir, venv_name)
def after_install(options, home_dir):
base_dir = os.path.dirname(home_dir)
src_dir = join(home_dir, 'src')
- fassembler_svn = options.fassembler_svn
- if os.path.exists(fassembler_svn):
- # A directory
- logger.debug('Using svn checkout in directory %s' % fassembler_svn)
- fassembler_dir = os.path.abspath(fassembler_svn)
- logger.info('Using existing svn checkout at %s' % fassembler_dir)
- else:
- fassembler_dir = join(src_dir, 'fassembler')
- logger.notify('Installing fassembler from %s to %s' % (fassembler_svn, fassembler_dir))
- fs_ensure_dir(src_dir)
- call_subprocess(['svn', 'checkout', '--quiet', fassembler_svn, fassembler_dir],
- show_stdout=True)
- logger.indent += 2
+ tmp_dir = join(home_dir, 'tmp')
+ ensure_dir(src_dir)
+ ensure_dir(tmp_dir)
+ #logger.indent += 2
try:
- call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), '-f', 'https://svn.openplans.org/eggs', 'mysql-python'],
- cwd=os.path.abspath(fassembler_dir),
+ call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), 'psycopg2'],
+ cwd=os.path.abspath(tmp_dir),
+ filter_stdout=filter_python_develop,
+ show_stdout=False)
+ call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), 'pyxml'],
+ cwd=os.path.abspath(tmp_dir),
+ filter_stdout=filter_python_develop,
+ show_stdout=False)
+ call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), '4suite-xml'],
+ cwd=os.path.abspath(tmp_dir),
filter_stdout=filter_python_develop,
show_stdout=False)
- call_subprocess([os.path.abspath(join(home_dir, 'bin', 'python')), 'setup.py', 'develop'],
- cwd=os.path.abspath(fassembler_dir),
+ call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), 'pil'],
+ cwd=os.path.abspath(tmp_dir),
+ filter_stdout=filter_python_develop,
+ show_stdout=False)
+ call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), 'pil'],
+ cwd=os.path.abspath(tmp_dir),
filter_stdout=filter_python_develop,
show_stdout=False)
+
+#get pylucene
+#cd jcc
+#install jcc
+#cd pylucene
+#instqll pylucene
+#delete src
+ #call_subprocess([os.path.abspath(join(home_dir, 'bin', 'python')), 'setup.py', 'develop'],
+ # cwd=os.path.abspath(fassembler_dir),
+ # filter_stdout=filter_python_develop,
+ # show_stdout=False)
finally:
logger.indent -= 2
script_dir = join(base_dir, 'bin')
- script_dest = join(script_dir, 'fassembler')
- logger.notify('Copying fassembler to %s' % script_dest)
- fs_ensure_dir(script_dir)
- os.symlink('../fassembler/bin/fassembler', script_dest)
- etc_dir = join(base_dir, 'etc')
- build_ini = join(etc_dir, 'build.ini')
- if not os.path.exists(build_ini):
- fs_ensure_dir(etc_dir)
- logger.notify('Touching %s' % build_ini)
- f = open(build_ini, 'w')
- f.close()
- logger.notify('Run "%s fassembler:topp" (etc) to build out the environment'
- % script_dest)
logger.notify('Run "%s Package" to install new packages that provide builds'
- % join(home_dir, 'bin', 'easy_install'))
+ % join(script_dir, 'easy_install'))
-def fs_ensure_dir(dir):
+def ensure_dir(dir):
if not os.path.exists(dir):
logger.info('Creating directory %s' % dir)
os.makedirs(dir)