Use predefined config locations
This commit is contained in:
29
ankisyncd/config.py
Normal file
29
ankisyncd/config.py
Normal file
@@ -0,0 +1,29 @@
|
||||
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']
|
||||
Reference in New Issue
Block a user