if no config.toml, set config through environment #64

This commit is contained in:
b3yond 2018-11-06 16:17:47 +01:00
parent f274d25822
commit 238dd20d20

View file

@ -1,5 +1,57 @@
import pytoml as toml import pytoml as toml
import os
def load_env():
"""
load environment variables from the environment. If empty, use default
values from config.toml.example.
:return: config dictionary of dictionaries.
"""
with open('config.toml.example') as defaultconf:
config = toml.load(configfile)
try:
config['twitter']['consumer_key'] = os.environ['CONSUMER_KEY']
except KeyError:
pass
try:
config['twitter']['consumer_secret'] = os.environ['CONSUMER_SECRET']
except KeyError:
pass
try:
config['web']['host'] = os.environ['HOST']
except KeyError:
pass
try:
config['web']['port'] = os.environ['PORT']
except KeyError:
pass
try:
config['web']['contact'] = os.environ['CONTACT']
except KeyError:
pass
try:
config['mail']['mbox_user'] = os.environ['MBOX_USER']
except KeyError:
pass
try:
config['database']['db_path'] = os.environ['DB_PATH']
except KeyError:
pass
return config
# read config in TOML format (https://github.com/toml-lang/toml#toml) # read config in TOML format (https://github.com/toml-lang/toml#toml)
with open('config.toml') as configfile: try:
config = toml.load(configfile) with open('config.toml') as configfile:
config = toml.load(configfile)
except FileNotFoundError:
config = load_env()