#!/usr/bin/python
"""Flat field correction executable script."""
import argparse
from gi.repository import Ufo
from tofu.config import parse_known_args, Params
from tofu.flatcorrect import create_pipeline


def make_args():
    """Make command line parameters and parse them."""
    parser = argparse.ArgumentParser()
    params = Params(sections=('flat-correction',))
    parser = params.add_arguments(parser)

    return parse_known_args(parser)


def main():
    """Flat field correction main function."""
    args = make_args()
    graph = Ufo.TaskGraph()
    sched = Ufo.Scheduler()
    pm = Ufo.PluginManager()

    out_task = pm.get_task('write')
    out_task.props.filename = args.output
    flat_task = create_pipeline(args, graph)
    graph.connect_nodes(flat_task, out_task)
    sched.run(graph)


if __name__ == '__main__':
    main()
