comparison carton.py @ 23:987086aad234

stub adding carton to to virtualenv
author Jeff Hammel <jhammel@mozilla.com>
date Fri, 08 Jul 2011 18:25:31 -0700
parents 9c710f06e51d
children bb19d3dac4c5
comparison
equal deleted inserted replaced
22:9c710f06e51d 23:987086aad234
48 ENV='''%(ENV)s''' 48 ENV='''%(ENV)s'''
49 49
50 # packed files 50 # packed files
51 VIRTUAL_ENV='''%(VIRTUAL_ENV)s'''.decode('base64').decode('zlib') 51 VIRTUAL_ENV='''%(VIRTUAL_ENV)s'''.decode('base64').decode('zlib')
52 PACKAGE_SOURCES=%(PACKAGE_SOURCES)s 52 PACKAGE_SOURCES=%(PACKAGE_SOURCES)s
53 CARTON=%(CARTON)s
53 54
54 # parse options 55 # parse options
55 usage = os.path.basename(sys.argv[0]) + ' [options]' 56 usage = os.path.basename(sys.argv[0]) + ' [options]'
56 parser = OptionParser(usage=usage, description=__doc__) 57 parser = OptionParser(usage=usage, description=__doc__)
57 parser.add_option('--env', dest='env', help="environment name [DEFAULT: " + ENV + "]") 58 parser.add_option('--env', dest='env', help="environment name [DEFAULT: " + ENV + "]")
118 setup_pys.add(i) 119 setup_pys.add(i)
119 120
120 # add virtualenv to the virtualenv (!) 121 # add virtualenv to the virtualenv (!)
121 virtualenv_dir = os.path.dirname(virtualenv) 122 virtualenv_dir = os.path.dirname(virtualenv)
122 if os.path.exists(os.path.join(virtualenv_dir, 'setup.py')): 123 if os.path.exists(os.path.join(virtualenv_dir, 'setup.py')):
123 call([python, 'setup.py', 'install'], cwd=virtualenv_dir) 124 call([python, 'setup.py', 'install'], cwd=virtualenv_dir, stdout=subprocess.PIPE)
124 125
125 # TODO: 126 # TODO:
127
126 # - add carton to the virtualenv (!) 128 # - add carton to the virtualenv (!)
129 # if CARTON:
130 # CARTON = CARTON.decode('base64').decode('zlib')
131 # carton_filename = os.path.join(scripts_dir, 'carton.py')
132 # f = file(carton_filename, 'w')
133 # f.write(CARTON)
134 # f.close()
135 # try:
136 # os.chmod(carton_filename, 0755)
137 # except:
138 # # you probably don't have os.chmod
139 # pass
140
127 # - cleanup tempdir 141 # - cleanup tempdir
128 # shutil.rmtree(tempdir) 142 # shutil.rmtree(tempdir)
129 """ 143 """
130 144
131 def isURL(path): 145 def isURL(path):
212 else: 226 else:
213 globals()['VIRTUAL_ENV'] = urllib2.urlopen(virtualenv_url).read() 227 globals()['VIRTUAL_ENV'] = urllib2.urlopen(virtualenv_url).read()
214 # TODO: used the below hashed value of VIRTUAL_ENV if set 228 # TODO: used the below hashed value of VIRTUAL_ENV if set
215 # (set that with another file) 229 # (set that with another file)
216 230
231 # get the contents of this file
232 carton = None
233 try:
234 if __file__:
235 filename = __file__.rstrip('c') # avoid pyfiles
236 if os.path.exists(filename):
237 carton = file(filename).read().encode('zlib').encode('base64')
238 except NameError:
239 pass
240
217 # interpolate "template" -> output 241 # interpolate "template" -> output
218 outfile = options.outfile 242 outfile = options.outfile
219 if outfile is None: 243 if outfile is None:
220 outfile = environment + '.py' 244 outfile = environment + '.py'
221 variables = {'VIRTUAL_ENV': VIRTUAL_ENV.encode('zlib').encode('base64'), 245 variables = {'VIRTUAL_ENV': VIRTUAL_ENV.encode('zlib').encode('base64'),
222 'ENV': environment, 246 'ENV': environment,
247 'CARTON': repr(carton),
223 'PACKAGE_SOURCES': repr(source_array)} 248 'PACKAGE_SOURCES': repr(source_array)}
224 f = file(outfile, 'w') 249 f = file(outfile, 'w')
225 f.write(template % variables) 250 f.write(template % variables)
226 f.close() 251 f.close()
227 try: 252 try: