#! /usr/bin/env python

import argparse

import phrydy
from phrydy._version import get_versions
from phrydy import MediaFileExtended
from phrydy.doc_generator import print_debug, format_fields_as_txt


def description():
    """Build the description string."""
    return '''\
Debugging tool of the Python package “phrydy”, an easy \
wrapper around the “mutagen” library.
    ''' + '\n' + format_fields_as_txt(color=True)


parser = argparse.ArgumentParser(
    formatter_class=argparse.RawDescriptionHelpFormatter,
    description=description()
)

parser.add_argument(
    'audio_file',
    help='A audio file',
)

parser.add_argument(
    '-c',
    '--color',
    help='Colorize the output',
    action='store_true',
)

parser.add_argument(
    '-v',
    '--version',
    action='version',
    version='%(prog)s {version}'.format(version=get_versions()['version'])
)

args = parser.parse_args()


if args.audio_file:
    print('phrydy version ' + phrydy.__version__)

    print_debug(
        file_path=args.audio_file,
        MediaClass=MediaFileExtended,
        field_generator=MediaFileExtended.readable_fields,
        color=args.color,
    )
