#!/usr/bin/python
"""Smartmeter Util.

Usage:
    {basename} summary [options] [-p <pattern>] <filename>...
    {basename} compare [options] [-p <pattern>] <filename>...
    {basename} -h | --help
    {basename} --version

Options:
    -h --help       Show help.
    --debug         Print debugging messages.
    -p <pattern>    Pattern to filter csv files if one or more directories are
                    specified in the file list. [default: tageswerte*.csv]

Commands:
    summary         Print a statistical summary of all usage data.
    compare         Inspect and compare latest usage data to previous power
                    consumption.
"""

from __future__ import print_function
import sys
import logging

from docopt import docopt
from smartmeter import analyze, __version__

log = logging.getLogger(__name__)

if __name__ == "__main__":
    # parse commandline options:
    args = docopt(__doc__.format(basename=__file__), version=__version__)
    if args['--debug']:
        logging.getLogger().setLevel(logging.DEBUG)
    log.debug(args)

    # parse input sources:
    try:
        input = analyze.FileDataSource(args['<filename>'], args['-p'])
    except analyze.InputError as e:
        print(e)
        sys.exit(1)

    # execute command:
    if args['compare']:
        stats = analyze.Stats(input.get_data())
        stats.calc_stats()
        analyze.print_comparisons(stats)
    elif args['summary']:
        stats = analyze.Stats(input.get_data())
        stats.calc_stats()
        analyze.print_summary(stats)
