Mercurial > hg > carton
diff carton.py @ 35:122c56779f2b
add functionality to run post-install python scripts
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Mon, 08 Aug 2011 18:08:49 -0700 |
parents | 8fef97a25925 |
children | 77285bafc36a |
line wrap: on
line diff
--- a/carton.py Mon Jul 11 15:03:50 2011 -0700 +++ b/carton.py Mon Aug 08 18:08:49 2011 -0700 @@ -71,6 +71,9 @@ PACKAGE_SOURCES=%(PACKAGE_SOURCES)s CARTON=%(CARTON)s +# post-install scripts +PYTHON_SCRIPTS=%(PYTHON_SCRIPTS)s + # parse options usage = os.path.basename(sys.argv[0]) + ' [options]' parser = OptionParser(usage=usage, description=__doc__) @@ -158,6 +161,12 @@ # cleanup virtualenv tempdir shutil.rmtree(tempdir) + +# run post-install scripts +for script in PYTHON_SCRIPTS: + if not os.path.isabs(script): + script = os.path.join(os.path.abspath(ENV), script) + call([python, script]) """ def isURL(path): @@ -178,6 +187,9 @@ parser.add_option('-p', '--package', dest='package', action='store_true', default=False, help="create python packages from sources; do not take entire subdirectory") + parser.add_option('--python-script', dest='python_scripts', default=[], + action='append', + help="post-uncartoning python scripts to run in the virtualenv; these should be relative to $VIRTUAL_ENV") parser.add_option('--virtualenv', dest='virtualenv', help="use this virtualenv URL or file tarball") options, args = parser.parse_args(args) @@ -269,6 +281,7 @@ variables = {'VIRTUAL_ENV': VIRTUAL_ENV.encode('zlib').encode('base64'), 'ENV': environment, 'CARTON': repr(carton), + 'PYTHON_SCRIPTS': repr(options.python_scripts), 'PACKAGE_SOURCES': repr(source_array)} f = file(outfile, 'w') f.write(template % variables)