diff options
author | Josh Matthews <josh@joshmatthews.net> | 2013-03-04 16:34:59 -0500 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2013-03-13 11:51:07 -0400 |
commit | 134be0dae051f2d4d86d3ed7a4cb0362c0525919 (patch) | |
tree | 9b51ac1840a3208c1f2e4f3ffd382d7b6f02eacc /src/servo/dom/bindings/codegen/pythonpath.py | |
parent | 998e3ffdedf55efa16dc6fb525ad571b1a7ba9a7 (diff) | |
download | servo-134be0dae051f2d4d86d3ed7a4cb0362c0525919.tar.gz servo-134be0dae051f2d4d86d3ed7a4cb0362c0525919.zip |
Integrate codegen into the build system.
Diffstat (limited to 'src/servo/dom/bindings/codegen/pythonpath.py')
-rw-r--r-- | src/servo/dom/bindings/codegen/pythonpath.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/servo/dom/bindings/codegen/pythonpath.py b/src/servo/dom/bindings/codegen/pythonpath.py new file mode 100644 index 00000000000..49b2d2f740f --- /dev/null +++ b/src/servo/dom/bindings/codegen/pythonpath.py @@ -0,0 +1,60 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +""" +Run a python script, adding extra directories to the python path. +""" + + +def main(args): + def usage(): + print >>sys.stderr, "pythonpath.py -I directory script.py [args...]" + sys.exit(150) + + paths = [] + + while True: + try: + arg = args[0] + except IndexError: + usage() + + if arg == '-I': + args.pop(0) + try: + path = args.pop(0) + except IndexError: + usage() + + paths.append(os.path.abspath(path)) + continue + + if arg.startswith('-I'): + paths.append(os.path.abspath(args.pop(0)[2:])) + continue + + if arg.startswith('-D'): + os.chdir(args.pop(0)[2:]) + continue + + break + + script = args[0] + + sys.path[0:0] = [os.path.abspath(os.path.dirname(script))] + paths + sys.argv = args + sys.argc = len(args) + + frozenglobals['__name__'] = '__main__' + frozenglobals['__file__'] = script + + execfile(script, frozenglobals) + +# Freeze scope here ... why this makes things work I have no idea ... +frozenglobals = globals() + +import sys, os + +if __name__ == '__main__': + main(sys.argv[1:]) |