import time
import logging
import os
import sys

curdir = os.path.dirname(__file__)
if curdir == '':
    curdir = '.'

curdir = os.path.realpath(curdir)

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(levelname)s %(message)s',
                    filename=os.path.join(curdir, 'data/xap.log'),
                    filemode='a')

console = logging.StreamHandler()
console.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)

import settings

if __name__ == '__main__':
    if len(sys.argv) > 1:
        settings.SQLURI = sys.argv[1]
    from xapindexer import start_server
    from xapindexer import stop_server

    logging.debug('running xapian server')
    try:
        start_server()
    except Exception, e:
        logging.debug('failed to start %s' % str(e))
        raise e

    while True:
        try:
            time.sleep(0.1)
        except KeyboardInterrupt:
            break

    stop_server()
    logging.debug('xapian server stopped')


