]> average.org Git - loctrkd.git/blobdiff - gps303/__main__.py
A script to parse data from the database
[loctrkd.git] / gps303 / __main__.py
index 0f6484a01fb8d1712933b42ba0326ac7de3280d4..ef03c61eff92d9ef31dcdefba8f6920025dcb696 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,25 +6,32 @@ 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 .GT06mod import handle_packet, make_response, LOGIN
+from .config import readconfig
+from .GT06mod import handle_packet, make_response, LOGIN, set_config
 from .evstore import initdb, stow
 
 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:d")
+    opts = dict(opts)
+    conf = readconfig(opts["-c"] if "-c" in opts else CONF)
+
     if sys.stdout.isatty():
         log.addHandler(StreamHandler(sys.stderr))
     if sys.stdout.isatty():
         log.addHandler(StreamHandler(sys.stderr))
-        log.setLevel(DEBUG)
     else:
         log.addHandler(SysLogHandler(address="/dev/log"))
     else:
         log.addHandler(SysLogHandler(address="/dev/log"))
-        log.setLevel(INFO)
+    log.setLevel(DEBUG if "-d" in opts else INFO)
+    log.info("starting with options: %s", opts)
 
 
-    initdb("/tmp/gps303.sqlite")
+    initdb(conf.get("daemon", "dbfn"))
+    set_config(conf)
 
     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()