30 lines
945 B
Python
30 lines
945 B
Python
|
|
import configparser
|
||
|
|
import logging
|
||
|
|
import os.path
|
||
|
|
|
||
|
|
|
||
|
|
def location():
|
||
|
|
dirname = os.path.dirname
|
||
|
|
realpath = os.path.realpath
|
||
|
|
choices = [
|
||
|
|
"/etc/ankisyncd/ankisyncd.conf",
|
||
|
|
os.environ.get("XDG_CONFIG_DIR") and
|
||
|
|
(os.path.join(os.environ['XDG_CONFIG_DIR'], "ankisyncd", "ankisyncd.conf")) or
|
||
|
|
os.path.join(os.path.expanduser("~"), ".config", "ankisyncd", "ankisyncd.conf"),
|
||
|
|
os.path.join(dirname(dirname(realpath(__file__))), "ankisyncd.conf"),
|
||
|
|
]
|
||
|
|
for path in choices:
|
||
|
|
logging.debug("config.location: trying", path)
|
||
|
|
if os.path.isfile(path):
|
||
|
|
logging.debug("config.location: choosing", path)
|
||
|
|
return path
|
||
|
|
|
||
|
|
logging.error("No config found, looked in", ", ".join(choices))
|
||
|
|
|
||
|
|
|
||
|
|
def load(path=location()):
|
||
|
|
logging.info("Loading config from {}".format(path))
|
||
|
|
parser = configparser.ConfigParser()
|
||
|
|
parser.read(path)
|
||
|
|
return parser['sync_app']
|