1c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org#!/usr/bin/python 2c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org# 3c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org# Copyright 2014 The Chromium Authors. All rights reserved. 4c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org# Use of this source code is governed by a BSD-style license that can be 5c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org# found in the LICENSE file. 6c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org 7c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org"This script is used to run obj_int_extract and output the result to a file." 8c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org 9c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgimport optparse 10c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgimport subprocess 11c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgimport sys 12c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org 13c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgparser = optparse.OptionParser() 14c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgparser.description = __doc__ 15c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgparser.add_option('-e', '--executable', help='path to obj_int_extract.') 16c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgparser.add_option('-f', '--format', help='binary format (gas or rvds).') 17c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgparser.add_option('-b', '--binary', help='path to binary to parse.') 18c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgparser.add_option('-o', '--output', help='path to write extracted output to.') 19c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org 20c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org 21c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgoptions, args = parser.parse_args() 22c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgif (not options.executable or not options.format or not options.binary or 23c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org not options.output): 24c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org parser.error('Must specify all four arguments.') 25c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org sys.exit(1) 26c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org 27c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgwith open(options.output, 'w') as fh: 28c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org subprocess.check_call([options.executable, options.format, options.binary], 29c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org stdout=fh) 30c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.org 31c911518760f9ab0412a412edf5c11be3ac1f8a78dpranke@chromium.orgsys.exit(0) 32