diff --git a/elfcli b/elfcli index d43f4d1..73a342b 100755 --- a/elfcli +++ b/elfcli @@ -1,27 +1,34 @@ #! /usr/bin/env python import sys -import getopt -from elfesteem import ELF +import code +#import elfesteem.elf +import readline +import rlcompleter +import argparse + def usage(): print >>sys.stderr,"Usage: elfcli [-i inputfile]" raise SystemExit -def main(*args): - INPUT=sys.stdin - try: - opts = getopt.getopt(args,"hi:") - for opt,optarg in opts[0]: - if opt == "-h": - usage() - if opt == "-i": - INPUT = open(optarg) - except getopt.GetoptError,e: - print >>sys.stderr,"ERROR: %s" % e - raise SystemExit +def main(): + + parser = argparse.ArgumentParser() + parser.add_argument("infile") + + options = parser.parse_args() + + # prepare locals and binding for interactive session + readline.parse_and_bind("tab: complete") + del(parser) + from elfesteem import * + + elf = elf_init.ELF(open(options.infile).read()) + + code.interact(local=locals()) if __name__ == "__main__": - main(*sys.argv[1:]) + main()