#!/usr/bin/env python
"""
Create and initalize genisys database.
"""
import argparse

from genisys.web.model import MongoStorage
from pymongo import MongoClient


def main():
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument('--mongo-uri', '-m', default='mongodb://127.0.0.1',
                        help='mongodb connection uri')
    parser.add_argument('--db-name', '-n', default='genisys',
                        help='database name (defaults to "genisys")')
    parser.add_argument('--owners', '-o', metavar='USERNAME',
                        nargs='+', required=True,
                        help='one or many usernames of root section owners')
    parser.add_argument('--drop-database', action='store_true',
                        help='drop existing database before creating new')
    args = parser.parse_args()

    mongo_client = MongoClient(args.mongo_uri)
    if args.drop_database:
        mongo_client.drop_database(args.db_name)
    storage = MongoStorage(mongo_client, args.db_name)
    storage.init_db(args.owners)


if __name__ == '__main__':
    main()
