#!/usr/bin/env python
from __future__ import print_function

import sys
import argparse

def dump_json(input_file):
    from pyrscan import read_scan
    from utils import namedtuple_json_dumps
    scan = read_scan(args.input)
    return print(namedtuple_json_dumps(scan, indent=4))

def dump_debug(input_file):
    from pyrscan import read_scan
    from debug_dump import debug_dumps
    scan = read_scan(args.input)
    return debug_dumps(scan)

def main(args, parser):
    if args.format == 'json':
        dump_json(args.input)
    elif args.format == 'debug':
        dump_debug(args)
    else:
        parser.error(
            u"Unknown output format: {0} (known ones are debug, json).".format(args.format))

if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('-i', '--input', type=str, required=True, action="append",
                        help="Input file(s). For hybrid scans, use this arg multiple times.")
    parser.add_argument('-f', '--format', help='Output format (one of debug, json).',
                        required=True)
    args = parser.parse_args()

    main(args, parser)
