#!/usr/bin/env python
# -*- python -*-

import sys
import uuid
from optparse import OptionParser

from twisted.python import log
from smap import core, server, driver

def get_parser():
    usage = 'usage: %prog [options] driver-class'
    parser = OptionParser(usage=usage)
    parser.add_option('-p', '--port', dest='port', default=8080,
                      type='int',
                      help='port to run server on')
    parser.add_option('-u', '--uuid', dest='uuid', default=str(uuid.uuid1()),
                      help='root uuid of server')
    return parser

if __name__ == '__main__':
    # start logging, and intercept any messages which are using the
    # standard library log
    parser = get_parser()
    opts, args = parser.parse_args()
    if len(args) != 1: parser.error("driver class name is a required argument")

    log.startLogging(sys.stdout)
    inst = core.SmapInstance(opts.uuid, reportfile=None)
    dmgr = driver.SmapDriver.get_driver(inst, args[0], '/', inst.root_uuid)
    dmgr.setup(opts={})
    server.run(inst, port=opts.port)
