diff -r b25bb1dd177c -r 05d10640919a sbin/create_python_env.py --- a/sbin/create_python_env.py Mon May 31 19:05:09 2010 +0200 +++ b/sbin/create_python_env.py Tue Jun 01 10:44:27 2010 +0200 @@ -1,5 +1,5 @@ """ -Call this like ``python fassembler/create_python_env.py``; it will +Call this like ``python create_python_env.py``; it will refresh the blinkster-boot.py script -prerequisite: @@ -14,9 +14,10 @@ import os import subprocess import re +import sys here = os.path.dirname(os.path.abspath(__file__)) -base_dir = os.path.dirname(here) +base_dir = here script_name = os.path.join(base_dir, 'blinkster-boot.py') import virtualenv @@ -35,8 +36,9 @@ import shutil import tarfile import urllib +import platform -4SUITE_XML_URL = 'ftp://ftp.4suite.org/pub/4Suite/4Suite-XML-1.0.2.tar.bz2' +FOURSUITE_XML_URL = 'ftp://ftp.4suite.org/pub/4Suite/4Suite-XML-1.0.2.tar.bz2' PY_LUCENE_URL = 'http://apache.crihan.fr/dist/lucene/pylucene/pylucene-3.0.1-1-src.tar.gz' def extend_parser(parser): @@ -62,13 +64,13 @@ tmp_dir = join(home_dir, 'tmp') ensure_dir(src_dir) ensure_dir(tmp_dir) - #logger.indent += 2 + logger.indent += 2 try: - call_subprocess([os.path.abspath(os.path.join(home_dir, 'bin', 'pip')), ,'-E '+ os.path.abspath(home_dir), 'psycopg2', 'pil', 'pyxml'], + call_subprocess([os.path.abspath(os.path.join(home_dir, 'bin', 'pip')) ,'-E '+ os.path.abspath(home_dir), 'psycopg2', 'pil', 'pyxml'], cwd=os.path.abspath(tmp_dir), filter_stdout=filter_python_develop, show_stdout=False) - call_subprocess([os.path.abspath(os.path.join(home_dir, 'bin', 'easy_install')), 4SUITE_XML_URL], + call_subprocess([os.path.abspath(os.path.join(home_dir, 'bin', 'easy_install')), FOURSUITE_XML_URL], cwd=os.path.abspath(tmp_dir), filter_stdout=filter_python_develop, show_stdout=False) @@ -77,39 +79,54 @@ pylucene_src = os.path.join(src_dir,"pylucene.tar.gz") urllib.urlretrieve(PY_LUCENE_URL, pylucene_src) tf = tarfile.open(pylucene_src,'r:gz') - tf.extractall(os.path.join(src_dir,"pylucene")) + pylucene_base_path = os.path.join(src_dir,"pylucene") + tf.extractall(pylucene_base_path) tf.close() + + pylucene_src_path = os.path.join(pylucene_base_path, os.listdir(pylucene_base_path)[0]) + #install jcc call_subprocess([os.path.abspath(os.path.join(home_dir, 'bin', 'python')), 'setup.py', 'install'], - cwd=os.path.abspath(os.path.join(src_dir,"pylucene","pylucene-3.0.1-1","jcc")), + cwd=os.path.abspath(os.path.join(pylucene_src_path,"jcc")), filter_stdout=filter_python_develop, show_stdout=False) #install pylucene - #modify makefile -#PREFIX_PYTHON=os.path.abspath(fassembler_dir) -#ANT=ant -#PYTHON=$(PREFIX_PYTHON)/bin/python -#osx 10.5 10.6 32-64 bit -#JCC=$(PYTHON) -m jcc.__main__ --shared --arch x86_64 --arch i386 -#NUM_FILES=2 - -#linux -#JCC=$(PYTHON) -m jcc --shared -#NUM_FILES=2 + #modify makefile + makefile_path = os.path.join(pylucene_src_path,"Makefile") + shutil.move( makefile_path, makefile_path+"~" ) -# windows -#JCC=$(PYTHON) -m jcc --shared -#NUM_FILES=3 - + destination= open( makefile_path, "w" ) + source= open( makefile_path+"~", "r" ) + destination.write("PREFIX_PYTHON="+os.path.abspath(home_dir)) + destination.write("ANT=ant") + destination.write("PYTHON=$(PREFIX_PYTHON)/bin/python") + system_str = platform.system() + if system_str == "Darwin": + destination.write("JCC=$(PYTHON) -m jcc.__main__ --shared --arch x86_64 --arch i386") + destination.write("NUM_FILES=2") + elif system_str == "Windows": + destination.write("JCC=$(PYTHON) -m jcc.__main__ --shared --arch x86_64 --arch i386") + destination.write("NUM_FILES=2") + else: + destination.write("JCC=$(PYTHON) -m jcc --shared") + destination.write("NUM_FILES=2") + for line in source: + destination.write( line ) + source.close() + destination.close() + os.remove(makefile_path+"~" ) -#install 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) + call_subprocess(['make', 'install'], + cwd=os.path.abspath(pylucene_src_path), + filter_stdout=filter_python_develop, + show_stdout=False) + + os.re + + os.removedirs(src_dir) + finally: - #logger.indent -= 2 + logger.indent -= 2 script_dir = join(base_dir, 'bin') logger.notify('Run "%s Package" to install new packages that provide builds' % join(script_dir, 'easy_install'))