| # Copyright (c) 2013 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. | 
 |  | 
 | import os | 
 | import os.path | 
 | import subprocess | 
 | import sys | 
 |  | 
 | if len(sys.argv) < 3: | 
 |   print "Usage: %s OUTPUTFILE SCRIPTNAME ARGUMENTS" % sys.argv[0] | 
 |   print "Re-execs the python interpreter against SCRIPTNAME with ARGS," | 
 |   print "redirecting output to OUTPUTFILE." | 
 |   sys.exit(1) | 
 |  | 
 | abs_outputfile = os.path.abspath(sys.argv[1]) | 
 | abs_outputdir = os.path.dirname(abs_outputfile) | 
 |  | 
 | if not os.path.isdir(abs_outputdir): | 
 |   os.makedirs(abs_outputdir) | 
 |  | 
 | ret = 0 | 
 |  | 
 | with open(abs_outputfile, "w") as f: | 
 |   ret = subprocess.Popen([sys.executable] + sys.argv[2:], stdout=f).wait() | 
 |  | 
 | if ret: | 
 |   os.remove(abs_outputfile) | 
 |   sys.exit(ret) |