X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=gps303%2Fcommon.py;h=09fb01f060c73c0f0821ec84947fb435fa1344da;hb=ac0ca5aab2dbc4ce035cfc0e0f7175110ea180a5;hp=0e7aac12e11d29f31f96b786e6386406f98d9d0c;hpb=4c173a5448990cd4da398be1bf3479bef17b1048;p=loctrkd.git diff --git a/gps303/common.py b/gps303/common.py index 0e7aac1..09fb01f 100644 --- a/gps303/common.py +++ b/gps303/common.py @@ -3,14 +3,17 @@ from configparser import ConfigParser from getopt import getopt from logging import getLogger, StreamHandler, DEBUG, INFO +from logging.handlers import SysLogHandler from sys import argv, stderr, stdout CONF = "/etc/gps303.conf" PORT = 4303 DBFN = "/var/lib/gps303/gps303.sqlite" -def init(log): - opts, _ = getopt(argv[1:], "c:d") + +def init(log, opts=None): + if opts is None: + opts, _ = getopt(argv[1:], "c:d") opts = dict(opts) conf = readconfig(opts["-c"] if "-c" in opts else CONF) if stdout.isatty(): @@ -21,6 +24,7 @@ def init(log): log.info("starting with options: %s", opts) return conf + def readconfig(fname): config = ConfigParser() config["collector"] = { @@ -29,13 +33,31 @@ def readconfig(fname): config["storage"] = { "dbfn": DBFN, } - config["device"] = {} - #_print_config(config) - #print("now reading", fname) + config["termconfig"] = {} config.read(fname) - #_print_config(config) return config + +def normconf(section): + result = {} + for key, val in section.items(): + vals = val.split("\n") + if len(vals) > 1 and vals[0] == "": + vals = vals[1:] + lst = [] + for el in vals: + try: + el = int(el, 0) + except ValueError: + if el[0] == '"' and el[-1] == '"': + el = el.strip('"').rstrip('"') + lst.append(el) + if len(lst) == 1: + [lst] = lst + result[key] = lst + return result + + if __name__ == "__main__": from sys import argv @@ -47,4 +69,4 @@ if __name__ == "__main__": conf = readconfig(argv[1]) _print_config(conf) - print("binaryswitch", int(conf.get("device", "binaryswitch"), 0)) + print(normconf(conf["termconfig"]))