#!/usr/bin/env python

import os

from flask.cli import FlaskGroup
from forest import app, db
from forest.models import User

from flask_migrate import Migrate

cli = FlaskGroup(app)

migrate = Migrate()
migrate.init_app(app, db)

@cli.command("create_db")
def create_db():
    db.drop_all()
    db.create_all()
    db.session.commit()


@cli.command("seed_db")
def seed_db():
    db.session.add(User(email="daniel@deflax.net"))
    db.session.commit()


@cli.command("upgrade_db")
def upgrade_db():
    """Run deployment tasks."""
    from flask_migrate import upgrade
    from app.models import Role, User

    # migrate database to latest revision
    upgrade()

    # create user roles
    Role.insert_roles()


@cli.command("restore_db")
def restore_db(restore_file):
    """ recreate db from grid export with python3 manage.py restore /path/grid.tar.bz2 """
    print(str(restore_file))
    #TODO
    from app.models import User
    db.session.add(User(email=str(user), password=str(password), confirmed=True, confirmed_on=datetime.datetime.now()))
    db.session.commit()


if __name__ == "__main__":
    cli()
 
