#!/usr/bin/env python
"""This is the start script for Seamstress Exchange under Glass.
Try to get this to work right out of the tarball:
* Use relative paths.
* If the user hasn't installed something, don't fail "mysteriously".
* Automatically load the schema into the test database.
"""
# Created: Fri Apr 16 14:25:29 PDT 2004
# Author: Shannon -jj Behrens
# Email: jjinux@yahoo.com
#
# Copyright (c) Shannon -jj Behrens. All rights reserved.
import os
import sys
import MySQLdb
def fail(msg):
"""Fail with the given error message."""
print >> sys.stderr, "%s: %s" % (os.path.basename(sys.argv[0]), msg)
sys.exit(1)
def init_database():
"""Test that we can connect to MySQL. Load the schema."""
import aquarium.conf.AquariumProperties as properties
connection = MySQLdb.connect(*properties.DATABASE_CONNECTION_ARGS,
**properties.DATABASE_CONNECTION_KWARGS)
try:
cursor = connection.cursor()
cursor.execute(file(SCHEMA).read())
finally:
connection.close()
# Require that the user run this script within its directory.
if not os.path.dirname(__file__) in ["", os.curdir]:
fail("Please cd to the directory containing %s." % sys.argv[0])
# Make sure we can get to aquarium and glass.
DIST_ROOT = os.path.join(os.getcwd(), os.pardir, os.pardir)
SCHEMA = os.path.join(os.getcwd(), "doc", "MySQLSchema.sql")
sys.path.append(DIST_ROOT)
# Test that we can connect to MySQL. Load the schema.
init_database()
# Now, start the Web server.
from glass.HTTPServer import test
try:
print "Use Control-C to exit. In Windows, use Control-Break."
test()
except KeyboardInterrupt:
pass
|