#!/usr/bin/env python
# -*- coding: utf-8 -*-


import argparse
import os
import sys
from dcm2bids.dcm2bids import Dcm2bids


def get_arguments():
    parser = argparse.ArgumentParser(
            formatter_class=argparse.RawDescriptionHelpFormatter,
            description="",
            epilog="""
            Documentation at https://github.com/cbedetti/Dcm2Bids
            """)

    parser.add_argument(
            "-d", "--dicom_dir",
            required=True, nargs="+",
            help="DICOM directory(ies)",
            )

    parser.add_argument(
            "-p", "--participant",
            required=True,
            help="Participant code",
            )

    parser.add_argument(
            "-s", "--session",
            required=False, default=None,
            help="Session code",
            )

    parser.add_argument(
            "-c", "--config",
            required=True, default=None,
            help="JSON configuration file (see example/config.json)",
            )

    parser.add_argument(
            "-o", "--output_dir",
            required=False, default=os.getcwd(),
            help="Output BIDS directory, Default: current directory",
            )

    parser.add_argument(
            "--forceDcm2niix",
            required=False, action='store_true',
            help="Overwrite old temporary dcm2niix output if it exists",
            )

    parser.add_argument(
            "--clobber",
            required=False, action='store_true',
            help="Overwrite output if it exists",
            )

    parser.add_argument(
            "-l", "--log_level",
            required=False, default="INFO",
            choices=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],
            help="Set logging level",
            )

    parser.add_argument(
            "-a", "--anonymizer",
            required=False, default=None,
            help="Anonymize each anat image by passing it to this shell \
            command (e.g., pydeface.py - the call syntax must be anonymizer \
            inputfile outputfile)")

    args = parser.parse_args()
    return args


def main():
    """Let's go"""
    args = get_arguments()
    app = Dcm2bids(**vars(args))
    return app.run()


if __name__ == '__main__':
    sys.exit(main())
