40 if not args: |
46 if not args: |
41 return # caller will raise error |
47 return # caller will raise error |
42 |
48 |
43 # We're actually going to build the venv in a subdirectory |
49 # We're actually going to build the venv in a subdirectory |
44 base_dir = args[0] |
50 base_dir = args[0] |
45 args[0] = join(base_dir, 'fassembler') |
51 if len(args) > 1: |
|
52 venv_name = args[1] |
|
53 else: |
|
54 venv_name = "blinkster" |
|
55 |
|
56 args[0] = join(base_dir, venv_name) |
46 |
57 |
47 def after_install(options, home_dir): |
58 def after_install(options, home_dir): |
48 base_dir = os.path.dirname(home_dir) |
59 base_dir = os.path.dirname(home_dir) |
49 src_dir = join(home_dir, 'src') |
60 src_dir = join(home_dir, 'src') |
50 fassembler_svn = options.fassembler_svn |
61 tmp_dir = join(home_dir, 'tmp') |
51 if os.path.exists(fassembler_svn): |
62 ensure_dir(src_dir) |
52 # A directory |
63 ensure_dir(tmp_dir) |
53 logger.debug('Using svn checkout in directory %s' % fassembler_svn) |
64 #logger.indent += 2 |
54 fassembler_dir = os.path.abspath(fassembler_svn) |
|
55 logger.info('Using existing svn checkout at %s' % fassembler_dir) |
|
56 else: |
|
57 fassembler_dir = join(src_dir, 'fassembler') |
|
58 logger.notify('Installing fassembler from %s to %s' % (fassembler_svn, fassembler_dir)) |
|
59 fs_ensure_dir(src_dir) |
|
60 call_subprocess(['svn', 'checkout', '--quiet', fassembler_svn, fassembler_dir], |
|
61 show_stdout=True) |
|
62 logger.indent += 2 |
|
63 try: |
65 try: |
64 call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), '-f', 'https://svn.openplans.org/eggs', 'mysql-python'], |
66 call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), 'psycopg2'], |
65 cwd=os.path.abspath(fassembler_dir), |
67 cwd=os.path.abspath(tmp_dir), |
66 filter_stdout=filter_python_develop, |
68 filter_stdout=filter_python_develop, |
67 show_stdout=False) |
69 show_stdout=False) |
68 call_subprocess([os.path.abspath(join(home_dir, 'bin', 'python')), 'setup.py', 'develop'], |
70 call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), 'pyxml'], |
69 cwd=os.path.abspath(fassembler_dir), |
71 cwd=os.path.abspath(tmp_dir), |
70 filter_stdout=filter_python_develop, |
72 filter_stdout=filter_python_develop, |
71 show_stdout=False) |
73 show_stdout=False) |
|
74 call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), '4suite-xml'], |
|
75 cwd=os.path.abspath(tmp_dir), |
|
76 filter_stdout=filter_python_develop, |
|
77 show_stdout=False) |
|
78 call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), 'pil'], |
|
79 cwd=os.path.abspath(tmp_dir), |
|
80 filter_stdout=filter_python_develop, |
|
81 show_stdout=False) |
|
82 call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), 'pil'], |
|
83 cwd=os.path.abspath(tmp_dir), |
|
84 filter_stdout=filter_python_develop, |
|
85 show_stdout=False) |
|
86 |
|
87 #get pylucene |
|
88 #cd jcc |
|
89 #install jcc |
|
90 #cd pylucene |
|
91 #instqll pylucene |
|
92 #delete src |
|
93 #call_subprocess([os.path.abspath(join(home_dir, 'bin', 'python')), 'setup.py', 'develop'], |
|
94 # cwd=os.path.abspath(fassembler_dir), |
|
95 # filter_stdout=filter_python_develop, |
|
96 # show_stdout=False) |
72 finally: |
97 finally: |
73 logger.indent -= 2 |
98 logger.indent -= 2 |
74 script_dir = join(base_dir, 'bin') |
99 script_dir = join(base_dir, 'bin') |
75 script_dest = join(script_dir, 'fassembler') |
|
76 logger.notify('Copying fassembler to %s' % script_dest) |
|
77 fs_ensure_dir(script_dir) |
|
78 os.symlink('../fassembler/bin/fassembler', script_dest) |
|
79 etc_dir = join(base_dir, 'etc') |
|
80 build_ini = join(etc_dir, 'build.ini') |
|
81 if not os.path.exists(build_ini): |
|
82 fs_ensure_dir(etc_dir) |
|
83 logger.notify('Touching %s' % build_ini) |
|
84 f = open(build_ini, 'w') |
|
85 f.close() |
|
86 logger.notify('Run "%s fassembler:topp" (etc) to build out the environment' |
|
87 % script_dest) |
|
88 logger.notify('Run "%s Package" to install new packages that provide builds' |
100 logger.notify('Run "%s Package" to install new packages that provide builds' |
89 % join(home_dir, 'bin', 'easy_install')) |
101 % join(script_dir, 'easy_install')) |
90 |
102 |
91 def fs_ensure_dir(dir): |
103 def ensure_dir(dir): |
92 if not os.path.exists(dir): |
104 if not os.path.exists(dir): |
93 logger.info('Creating directory %s' % dir) |
105 logger.info('Creating directory %s' % dir) |
94 os.makedirs(dir) |
106 os.makedirs(dir) |
95 |
107 |
96 def filter_python_develop(line): |
108 def filter_python_develop(line): |