#!/usr/bin/env python


from __future__ import print_function
import six
import sys
import argparse
try:
    from mothulity import __version__
except ImportError:
    __version__ = "development"
try:
    import mothulity.utilities as mut
except ImportError:
    import utilities as mut


def main():
    parser = argparse.ArgumentParser(
        prog="mothulity_dbaser",
        usage="mothulity_dbaser [OPTION]",
        description="downloads mothur-suitable databases",
    )
    parser.add_argument(
        "-v",
        "--version",
        action="version",
        version=__version__,
    )
    parser.add_argument(
        action="store",
        dest="download_directory",
        metavar="path/to/files",
        default=".",
        nargs="?",
        help="directory where the database is downloaded.",
    )
    parser.add_argument(
        "--unite-ITS-02",
        action="store_true",
        dest="unite_ITS_02",
        help="download UNITE ITS 02.",
    )
    parser.add_argument(
        "--unite-ITS-s-02",
        action="store_true",
        dest="unite_ITS_s_02",
        help="download UNITE ITS s 02.",
    )
    parser.add_argument(
        "--silva-119",
        action="store_true",
        dest="silva_119",
        help="download Silva v119.",
    )
    parser.add_argument(
        "--silva-123",
        action="store_true",
        dest="silva_123",
        help="download Silva v123.",
    )

    if len(sys.argv)==1:
        parser.print_help()
        parser.exit()

    try:
        args = parser.parse_args()
    except SystemExit as error:
        if error.code == 2:
            parser.print_help()
        parser.exit()

    if args.unite_ITS_02:
        mut.download(
            download_directory=args.download_directory,
            filename="Unite_ITS_02.zip",
            url="https://www.mothur.org/w/images/4/49/Unite_ITS_02.zip",
            command="unzip",
            input_arg="",
            output_arg="-d",
        )

    if args.unite_ITS_s_02:
        mut.download(
            download_directory=args.download_directory,
            filename="Unite_ITS_s_02.zip",
            url="https://www.mothur.org/w/images/2/27/Unite_ITS_s_02.zip",
            command="unzip",
            input_arg="",
            output_arg="-d",
        )

        mut.download(
            download_directory=args.download_directory,
            filename="Silva.archaea.zip",
            url="https://www.mothur.org/w/images/3/3c/Silva.archaea.zip",
            command="unzip",
            input_arg="",
            output_arg="-d",
        )
        mut.download(
            download_directory=args.download_directory,
            filename="Silva.eukarya.zip",
            url="https://www.mothur.org/w/images/3/3c/Silva.archaea.zip",
            command="unzip",
            input_arg="",
            output_arg="-d",
        )

    if args.silva_119:
        mut.download(
            download_directory=args.download_directory,
            filename="Silva.nr_v119.tgz",
            url="http://www.mothur.org/w/images/2/27/Silva.nr_v119.tgz",
            command="tar",
            input_arg="-xf",
            output_arg="--directory",
        )

    if args.silva_123:
        mut.download(
            download_directory=args.download_directory,
            filename="Silva.nr_v123.tgz",
            url="https://www.mothur.org/w/images/b/be/Silva.nr_v123.tgz",
            command="tar",
            input_arg="-xf",
            output_arg="--directory",
        )

if __name__ == '__main__':
    main()
