#! /usr/bin/env python


def main():
    import sys
    import argparse

    parser = argparse.ArgumentParser(description="Analyze a logpyle database.")
    parser.add_argument("-m", "--mangle", action="store_true",
            help="whether to try and mangle SQL queries")
    parser.add_argument("-c", "--commands", action="store",
            help="commands to execute")
    parser.add_argument("dbfile", help="database file to read")
    parser.add_argument("scriptfile", nargs="?", help="script file to read")
    args = parser.parse_args()

    from logpyle.runalyzer import make_wrapped_db, make_runalyzer_symbols

    if args.scriptfile:
        db = make_wrapped_db(args.dbfile, mangle=args.mangle, interactive=False)
        exec(compile(open(args.scriptfile).read(), args.scriptfile, "exec"),
                make_runalyzer_symbols(db))
    elif args.commands:
        db = make_wrapped_db(args.dbfile, mangle=args.mangle, interactive=False)
        exec(compile(args.commands, "--commands", "exec"),
                make_runalyzer_symbols(db))
    else:
        db = make_wrapped_db(args.dbfile, mangle=args.mangle, interactive=True)
        from logpyle.runalyzer import RunalyzerConsole
        cons = RunalyzerConsole(db)
        cons.interact("Runalyzer running on Python %s\n"
                "Run .help to see help for 'magic' commands" % sys.version)


if __name__ == "__main__":
    main()
