#!/usr/bin/env python
"""Commandline script to synchronize focalplane model from the DB dump.
"""

import argparse

from desimodel.inputs.focalplane_sync import create_from_calibs


def main():
    parser = argparse.ArgumentParser()

    parser.add_argument(
        "--calib_file",
        type=str,
        default=None,
        required=True,
        help="The ECSV database dump file",
    )

    parser.add_argument(
        "--test",
        required=False,
        default=False,
        action="store_true",
        help="Go through the process of updating the focalplane, but do not actually write new files.",
    )

    parser.add_argument(
        "--reset",
        required=False,
        default=False,
        action="store_true",
        help="Create a new focalplane model from the calib file, ignoring all previous state information",
    )

    parser.add_argument(
        "--simulate_good",
        required=False,
        default=False,
        action="store_true",
        help="Create a focalplane model for simulations.  Non-broken fibers set to good",
    )

    parser.add_argument(
        "--debug_dir",
        type=str,
        required=False,
        default=None,
        help="Override the output directory for debugging.",
    )

    parser.add_argument(
        "--commit",
        required=False,
        default=False,
        action="store_true",
        help="Commit updated focalplane model to svn.",
    )

    args = parser.parse_args()

    create_from_calibs(
        args.calib_file,
        out_dir=args.debug_dir,
        reset=args.reset,
        sim_good=args.simulate_good,
        commit=args.commit,
        test=args.test,
    )

    return


if __name__ == "__main__":
    main()
