update python env script
authorymh <ymh.work@gmail.com>
Mon, 31 May 2010 11:14:39 +0200
changeset 32 e28089cee66c
parent 31 a727d83c8f88
child 33 b25bb1dd177c
update python env script
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)