"""
Console script entry points for CLI tools.
"""
import os
from datetime import datetime

from edosl0util import split, trunc


def _timestamp(v):
    return datetime.strptime(v, '%Y-%m-%d %H:%M:%S')


def cmd_trunc():
    from argparse import ArgumentParser
    parser = ArgumentParser()
    parser.add_argument('-o', '--output')
    parser.add_argument('filename')
    parser.add_argument('start', type=_timestamp)
    parser.add_argument('end', type=_timestamp)
    args = parser.parse_args()

    output = args.output or os.path.basename(args.filename) + '.trunc'
    with open(output, 'wb') as fptr:
        for pkt in trunc.trunc_file(args.filename, args.start, args.end):
            fptr.write(pkt.blob)


def cmd_split():
    from argparse import ArgumentParser
    parser = ArgumentParser(description=split.__doc__)
    parser.add_argument('--minutes', type=int, default=6)
    parser.add_argument('filepath')
    args = parser.parse_args()

    for stamp, fpath in split.split_file(args.filepath, args.minutes, os.getcwd()):
        print('wrote bucket {} to {}'.format(stamp.isoformat(), fpath))