SEESenv/web/hgbook/dbutil.py
author amit@thunder
Fri, 12 Feb 2010 01:11:21 +0530
changeset 2 52d12eb31c30
parent 0 web/hgbook/dbutil.py@8083d21c0020
permissions -rwxr-xr-x
Virtual enviroment for SEES-hacks added ...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     1
import MySQLdb as mysql
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     2
import sys
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     3
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     4
def connect():
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     5
    try:
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     6
        import secrets
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     7
    except ImportError:
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     8
        print >> sys.stderr, 'Decrypt secrets.py.gpg or create a new copy!'
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
     9
        sys.exit(1)
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    10
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    11
    if secrets.DATABASE_ENGINE != 'mysql':
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    12
        print >> sys.stderr, ('You are using a %s database' %
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    13
                              secrets.DATABASE_ENGINE)
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    14
        sys.exit(1)
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    15
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    16
    kwargs = {
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    17
        'charset': 'utf8',
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    18
        'use_unicode': True,
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    19
        }
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    20
    if secrets.DATABASE_USER:
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    21
        kwargs['user'] = secrets.DATABASE_USER
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    22
    if secrets.DATABASE_NAME:
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    23
        kwargs['db'] = secrets.DATABASE_NAME
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    24
    if secrets.DATABASE_PASSWORD:
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    25
        kwargs['passwd'] = secrets.DATABASE_PASSWORD
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    26
    if secrets.DATABASE_HOST.startswith('/'):
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    27
        kwargs['unix_socket'] = secrets.DATABASE_HOST
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    28
    elif secrets.DATABASE_HOST:
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    29
        kwargs['host'] = secrets.DATABASE_HOST
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    30
    if secrets.DATABASE_PORT:
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    31
        kwargs['port'] = int(secrets.DATABASE_PORT)
8083d21c0020 The first commit of all the required files for the review app
amit@thunder
parents:
diff changeset
    32
    return mysql.connect(**kwargs)