aboutsummaryrefslogtreecommitdiffstats
path: root/test/helper_tools/inspect_dumpfile.py
blob: b2201f4063d482c463fc0f733607143573a0ec33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from pprint import pprint

import click

from mitmproxy import tnetstring


def read_tnetstring(input):
    # tnetstring throw a ValueError on EOF, which is hard to catch
    # because they raise ValueErrors for a couple of other reasons.
    # Check for EOF to avoid this.
    if not input.read(1):
        return None
    else:
        input.seek(-1, 1)
    return tnetstring.load(input)


@click.command()
@click.argument("input", type=click.File('rb'))
def inspect(input):
    """
    pretty-print a dumpfile
    """
    while True:
        data = read_tnetstring(input)
        if not data:
            break
        pprint(data)


if __name__ == "__main__":
    inspect()