| Index: tools/gypv8sh.py | 
| diff --git a/tools/gypv8sh.py b/tools/gypv8sh.py | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..ed47649971083f2d748bd6ea92662dd05236f02d | 
| --- /dev/null | 
| +++ b/tools/gypv8sh.py | 
| @@ -0,0 +1,46 @@ | 
| +#!/usr/bin/env python | 
| +# Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
| +# Use of this source code is governed by a BSD-style license that can be | 
| +# found in the LICENSE file. | 
| + | 
| +"""This script is used by chrome_tests.gypi's js2webui action to maintain the | 
| +argument lists and to generate inlinable tests. | 
| + | 
| +Usage: | 
| +  python tools/gypv8sh.py v8_shell js2webui.js inputfile outputfile | 
| +""" | 
| + | 
| +try: | 
| +  import json | 
| +except ImportError: | 
| +  import simplejson as json | 
| +import optparse | 
| +import os | 
| +import subprocess | 
| +import sys | 
| + | 
| +def main (): | 
| +  parser = optparse.OptionParser() | 
| +  parser.set_usage("%prog v8_shell js2webui.js inputfile outputfile") | 
| +  parser.add_option('-v', '--verbose', action='store_true') | 
| +  parser.add_option('-n', '--impotent', action='store_true', | 
| +                    help="don't execute; just print (as if verbose)") | 
| +  (opts, args) = parser.parse_args() | 
| + | 
| +  if len(args) != 4: | 
| +    parser.error('all arguments are required.') | 
| +  v8_shell, js2webui, inputfile, outputfile = args | 
| +  arguments = [js2webui, inputfile, os.path.basename(inputfile), outputfile] | 
| +  cmd = [v8_shell, '-e', "arguments=" + json.dumps(arguments), js2webui] | 
| +  if opts.verbose or opts.impotent: | 
| +    print cmd | 
| +  if not opts.impotent: | 
| +    try: | 
| +      subprocess.check_call(cmd, stdout=open(outputfile,'w')) | 
| +    except Exception, ex: | 
| +      print ex | 
| +      os.remove(outputfile) | 
| +      sys.exit(1) | 
| + | 
| +if __name__ == '__main__': | 
| + sys.exit(main()) | 
|  |