#!/usr/bin/env python
# Copyright (c) 2013 Yu-Jie Lin
# Licensed under the BSD License, for detailed license information, see COPYING

from __future__ import print_function
import argparse
import sys
import warnings

import smartypants


def main():

    parser = argparse.ArgumentParser(description=smartypants.__description__,
                                     version=smartypants.__version__)
    parser.add_argument('-a', '--attr', default='1',
                        help='processing attributes (Default: %(default)s)')
    parser.add_argument('-s', '--skip',
                        default=','.join(smartypants.tags_to_skip),
                        help='processing attributes (Default: %(default)s)')
    parser.add_argument('files', metavar='FILE', type=argparse.FileType('r'),
                        nargs='*', help='files to be processed ')
    args = parser.parse_args()

    with warnings.catch_warnings(record=True) as w:
        attr = smartypants._str_attr_to_int(args.attr)
        if len(w):
            print(w[-1].message)
            sys.exit(1)

    smartypants.tags_to_skip = args.skip.split(',')

    if args.files:
        for f in args.files:
            print(smartypants.smartypants(f.read(), attr), end='')
    else:
        print(smartypants.smartypants(sys.stdin.read(), attr), end='')


if __name__ == '__main__':
    main()
