#! /usr/bin/python2
import sys
import datetime

CONFIG_PATH = "/etc/fred"

if CONFIG_PATH and CONFIG_PATH not in sys.path:
    sys.path.append(CONFIG_PATH)


from stats_collector.data_collector import DataCollector
from stats_collector.args import args
from stats_collector.utils import time_measure
from stats_collector.stats import stat_registry


if __name__ == '__main__':
    stat_list = []
    if args.stat_list:
        for i in sorted(stat_registry.stats, key=lambda x: x.full_name()):
            print(i.full_name())
        sys.exit(0)
    if args.stat_groups:
        for stat_name in args.stat_groups:
            stat_list += stat_registry.groups[stat_name]
    if args.stat_names:
        stat_list += [i for i in stat_registry.stats if i.full_name() in args.stat_names]

    if args.run_date_end is None:
        args.run_date_end = args.run_date + datetime.timedelta(days=1)
    elif args.run_date_end <= args.run_date:
        sys.stderr.write("Error: wrong interval specified (end <= begin)\n")
        sys.exit(1)

    delta = datetime.timedelta(days=1)
    rc = 0
    while args.run_date < args.run_date_end:
        sys.stdout.write("Run date: %s\n" % args.run_date)
        data_collector = DataCollector()
        rc = time_measure(data_collector.get_and_save_data, args.run_date, stat_classes=stat_list,
                force_overwrite=args.force_overwrite)
        args.run_date += delta
        if rc > 0:
            break
    sys.exit(rc)
