diff options
Diffstat (limited to 'utils/test/llvm-mc-shell.py')
-rwxr-xr-x | utils/test/llvm-mc-shell.py | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/utils/test/llvm-mc-shell.py b/utils/test/llvm-mc-shell.py deleted file mode 100755 index 4d3119598423..000000000000 --- a/utils/test/llvm-mc-shell.py +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env python - -""" -Run llvm-mc interactively. - -""" - -import os -import sys -from optparse import OptionParser - - -def is_exe(fpath): - """Check whether fpath is an executable.""" - return os.path.isfile(fpath) and os.access(fpath, os.X_OK) - - -def which(program): - """Find the full path to a program, or return None.""" - fpath, fname = os.path.split(program) - if fpath: - if is_exe(program): - return program - else: - for path in os.environ["PATH"].split(os.pathsep): - exe_file = os.path.join(path, program) - if is_exe(exe_file): - return exe_file - return None - - -def llvm_mc_loop(mc, mc_options): - contents = [] - fname = 'mc-input.txt' - sys.stdout.write( - "Enter your input to llvm-mc. A line starting with 'END' terminates the current batch of input.\n") - sys.stdout.write("Enter 'quit' or Ctrl-D to quit the program.\n") - while True: - sys.stdout.write("> ") - next = sys.stdin.readline() - # EOF => terminate this llvm-mc shell - if not next or next.startswith('quit'): - sys.stdout.write('\n') - sys.exit(0) - # 'END' => send the current batch of input to llvm-mc - if next.startswith('END'): - # Write contents to our file and clear the contents. - with open(fname, 'w') as f: - f.writelines(contents) - # Clear the list: replace all items with an empty list. - contents[:] = [] - - # Invoke llvm-mc with our newly created file. - mc_cmd = '%s %s %s' % (mc, mc_options, fname) - sys.stdout.write("Executing command: %s\n" % mc_cmd) - os.system(mc_cmd) - else: - # Keep accumulating our input. - contents.append(next) - - -def main(): - # This is to set up the Python path to include the pexpect-2.4 dir. - # Remember to update this when/if things change. - scriptPath = sys.path[0] - sys.path.append( - os.path.join( - scriptPath, - os.pardir, - os.pardir, - 'test', - 'pexpect-2.4')) - - parser = OptionParser(usage="""\ -Do llvm-mc interactively within a shell-like environment. A batch of input is -submitted to llvm-mc to execute whenever you terminate the current batch by -inputing a line which starts with 'END'. Quit the program by either 'quit' or -Ctrl-D. - -Usage: %prog [options] -""") - parser.add_option('-m', '--llvm-mc', - type='string', action='store', - dest='llvm_mc', - help="""The llvm-mc executable full path, if specified. - Otherwise, it must be present in your PATH environment.""") - - parser.add_option( - '-o', - '--options', - type='string', - action='store', - dest='llvm_mc_options', - help="""The options passed to 'llvm-mc' command if specified.""") - - opts, args = parser.parse_args() - - llvm_mc = opts.llvm_mc if opts.llvm_mc else which('llvm-mc') - if not llvm_mc: - parser.print_help() - sys.exit(1) - - # This is optional. For example: - # --options='-disassemble -triple=arm-apple-darwin -debug-only=arm-disassembler' - llvm_mc_options = opts.llvm_mc_options - - # We have parsed the options. - print "llvm-mc:", llvm_mc - print "llvm-mc options:", llvm_mc_options - - llvm_mc_loop(llvm_mc, llvm_mc_options) - -if __name__ == '__main__': - main() |