#!/usr/bin/env python
# -*- coding: utf-8 -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8

u"""%(name)s - Détecter l'encoding d'un fichier ou d'une chaine
USAGE
    %(name)s "string"
    %(name)s -f inputfile"""

import sys

from ulib.all import *

def run_uencdetect():
    def print_help():
        uprint(__doc__ % {'name': scriptname})

    ins = None
    infile = None
    inf = None
    close_inf = False

    options, longoptions = build_options([
            (None, 'help', u"Afficher l'aide"),
            ('f:', 'input-file=', u"Fichier dont il faut détecter l'encoding"),
            ])
    options, args = get_args(None, options, longoptions)
    for option, value in options:
        if option in ('--help', ):
            print_help()
            sys.exit(0)
        elif option in ('-f', '--input-file'):
            if value == '-': inf = sys.stdin
            else: infile = value

    if infile is not None:
        inf = open(infile, 'rb')
        close_inf = True
    elif args: ins = ' '.join(args)
    else: inf = sys.stdin

    try: print guess_encoding(ins, inf)
    finally:
        if close_inf: inf.close()

if __name__ == '__main__':
    run_uencdetect()
