#/usr/bin/env python
#   A  Tool for cutting mysql sql datafiles into single files
#   1.0.0 Beta By Hito
#   www.hitoy.org

import re
import os
import sys

# Get A target sql file
targetfile=sys.argv[1:]

if not targetfile:
    print "Must Enter a Right Sql File"
    sys.exit()
else:
    if not os.path.isfile(sys.argv[1]):
        print sys.argv[1],"is not exist!"
        sys.exit()


sqlfile=open(sys.argv[1],"r")
sqlpath=os.path.abspath(sys.argv[1])
sqlpath=os.path.dirname(sqlpath)+"/"
sqlcontent=""
filename=sqlpath+"tmp"

while True:
    line=sqlfile.readline();
    if not(line):     
        break
    else: 
        m=re.match(r"CREATE\sDATABASE[^`]*`([^`]+)",line)
        if not(m):
            sqlcontent = sqlcontent + line
            single=open(filename,"a+")
            single.write(sqlcontent)
            single.close()
            sqlcontent=""
        else:
            filename=sqlpath+m.group(1)+".sql"
            sqlcontent=line
            print "cutting ",filename


sqlfile.close()
os.remove(sqlpath+"tmp")
