#!/usr/bin/python
# -*- coding: utf-8 -*-
# Copyright (c) 2012-2016 Seafile Ltd.

import os
import sys
import MySQLdb

import settings

try:
    dbname = os.environ['DBNAME']
    dbuser = os.environ['DBUSER']
    dbpasswd = os.environ['DBPASSWD']
except:
    sys.stderr.write('Environment not set! Exit\n')
    sys.exit(1)

def check_settings():
    if settings.DATABASE_ENGINE == 'mysql':
        sys.stderr.write('[ERROR] Current settings is mysql, need sqlite settings\n')
        sys.exit(1)
        
def do_create():
    root_passwd = input("Please enter root password to create database %s: " % dbname)

    conn = MySQLdb.Connect(host='localhost', user='root', passwd=root_passwd)
    cursor = conn.cursor()

    create_cmd = ( "CREATE DATABASE IF NOT EXISTS `%s` default charset utf8 COLLATE utf8_general_ci;") % (dbname)
    grant_cmd = ("grant all privileges on %s.* to '%s'@localhost identified by '%s';") % (dbname, dbuser, dbpasswd)
    
    try:
        cursor.execute(create_cmd)
        cursor.execute(grant_cmd)
    except:
        pass

    cursor.close()
    conn.close()
    
def do_delete(prefix):
        cmd = ('echo "select concat(\'drop table \',  table_name ,\';\') from TABLES where TABLE_SCHEMA =\'%s\' and table_name like \'%s_%%\' ;" | mysql -u %s -p%s information_schema | sed -n \'2,$p\' | mysql -u %s -p%s %s') % (dbname, prefix, dbuser, dbpasswd, dbuser, dbpasswd, dbname)
        try:
            output = os.popen(cmd).read()
        except:
            pass
    
if __name__=="__main__":
    # check current settings.py
    check_settings()
    
    # create database if not exists
    do_create()

    # detele all seahub tables 
    for app in settings.INSTALLED_APPS:
        app_name = app.split('.')[-1]
        do_delete(app_name)
    do_delete('django')
    
    print('[Delete seahub tables...Done]')