]> average.org Git - loctrkd.git/blobdiff - gps303/__main__.py
introduce config
[loctrkd.git] / gps303 / __main__.py
index 0f6484a01fb8d1712933b42ba0326ac7de3280d4..a3d4f07d6d1d4a702dd5cab573fa4e538510b69f 100755 (executable)
@@ -1,3 +1,4 @@
+from getopt import getopt
 from logging import getLogger, StreamHandler, DEBUG, INFO
 from logging.handlers import SysLogHandler
 from select import poll, POLLIN, POLLERR, POLLHUP, POLLPRI
 from logging import getLogger, StreamHandler, DEBUG, INFO
 from logging.handlers import SysLogHandler
 from select import poll, POLLIN, POLLERR, POLLHUP, POLLPRI
@@ -5,13 +6,19 @@ from socket import socket, AF_INET, SOCK_STREAM, SOL_SOCKET, SO_REUSEADDR
 import sys
 from time import time
 
 import sys
 from time import time
 
+from .config import readconfig
 from .GT06mod import handle_packet, make_response, LOGIN
 from .evstore import initdb, stow
 
 from .GT06mod import handle_packet, make_response, LOGIN
 from .evstore import initdb, stow
 
-PORT = 4303
+CONF = "/etc/gps303.conf"
+
 log = getLogger("gps303")
 
 if __name__.endswith("__main__"):
 log = getLogger("gps303")
 
 if __name__.endswith("__main__"):
+    opts, _ = getopt(sys.argv[1:], "c:p:")
+    opts = dict(opts)
+    conf = readconfig(opts["c"] if "c" in opts else CONF)
+
     if sys.stdout.isatty():
         log.addHandler(StreamHandler(sys.stderr))
         log.setLevel(DEBUG)
     if sys.stdout.isatty():
         log.addHandler(StreamHandler(sys.stderr))
         log.setLevel(DEBUG)
@@ -19,11 +26,11 @@ if __name__.endswith("__main__"):
         log.addHandler(SysLogHandler(address="/dev/log"))
         log.setLevel(INFO)
 
         log.addHandler(SysLogHandler(address="/dev/log"))
         log.setLevel(INFO)
 
-    initdb("/tmp/gps303.sqlite")
+    initdb(conf.get("daemon", "port"))
 
     ctlsock = socket(AF_INET, SOCK_STREAM)
     ctlsock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
 
     ctlsock = socket(AF_INET, SOCK_STREAM)
     ctlsock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
-    ctlsock.bind(("", PORT))
+    ctlsock.bind(("", conf.getint("daemon", "port")))
     ctlsock.listen(5)
     ctlfd = ctlsock.fileno()
     pollset = poll()
     ctlsock.listen(5)
     ctlfd = ctlsock.fileno()
     pollset = poll()