# HG changeset patch # User ymh # Date 1275297279 -7200 # Node ID e28089cee66c1f1a4bb4e36d3bd01ef045ec6361 # Parent a727d83c8f8805cb4092513cef69618b5142c584 update python env script diff -r a727d83c8f88 -r e28089cee66c sbin/create_python_env.py --- 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)