| # 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) |