#!/usr/bin/env python 

import datetime
import os
from stardice.daemon_servers import *
import encoders

if __name__ == "__main__":
    now = datetime.datetime.now()
    logdir = os.path.join(os.getenv("HOME", "logs"))
    logname = os.path.join(logdir, 
                           'encoders-server-%s.log' % now.date().isoformat())
    logsymlink = os.path.join(logdir, "encoders-server.log")
    if os.path.islink(logsymlink):
        try:
            os.unlink(logsymlink)
            os.symlink(logname, logsymlink)
        except OSError:
            pass

    import optparse 
    parser = optparse.OptionParser(usage="%prog [-l log] [-d]")
    parser.add_option('-d', '--daemon', default=False, 
                      action='store_true', 
                      help='Run as a background daemon')
    parser.add_option('--dummy', default=False, 
                      action='store_true', 
                      help='Run a fake instance instead')
    parser.add_option('-p', '--port', default=SERVER_PORT, 
                      action='store', type='int', 
                      help='Listen on port')
    parser.add_option('-H', '--hostname', default=SERVER_HOSTNAME, 
                      action='store', 
                      help='server address')
    parser.add_option('-l', '--log-file', default=logname, 
                      action='store', 
                      help='specify a log file')
    parser.add_option('-t', '--tty', default='/dev/encoders', 
                      dest='tty', action='store', 
                      help='specify the serial port')
    (options, args) = parser.parse_args()
    
    SERVER_HOSTNAME = options.hostname
    SERVER_PORT = options.port    


    if options.dummy:
        instance = Encoders(port=options.tty)
    else:
        focuser_instance = Focuser(port=options.tty)
    server = FocusServer((SERVER_HOSTNAME, SERVER_PORT))
    
    if options.daemon:
        daemonize(options, args)
    else:
        main(options, args)

        
