diff options
author | Patrick Walton <pcwalton@mimiga.net> | 2013-05-13 21:27:29 -0700 |
---|---|---|
committer | Patrick Walton <pcwalton@mimiga.net> | 2013-05-15 15:39:19 -0700 |
commit | 7caa209039b5765138020ba4a34c9575392e49f5 (patch) | |
tree | e472109f2f757e51f0605f6b646da3df69957f98 /src/components/servo/dom/bindings/codegen/pythonpath.py | |
parent | 5e406fab7ee60d9d8077d52d296f52500d72a2f6 (diff) | |
download | servo-7caa209039b5765138020ba4a34c9575392e49f5.tar.gz servo-7caa209039b5765138020ba4a34c9575392e49f5.zip |
Organize all the source files into compiler/, components/, and platform/.
Diffstat (limited to 'src/components/servo/dom/bindings/codegen/pythonpath.py')
-rw-r--r-- | src/components/servo/dom/bindings/codegen/pythonpath.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/components/servo/dom/bindings/codegen/pythonpath.py b/src/components/servo/dom/bindings/codegen/pythonpath.py new file mode 100644 index 00000000000..49b2d2f740f --- /dev/null +++ b/src/components/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:]) |