if no config.toml, set config through environment #64
This commit is contained in:
parent
f274d25822
commit
238dd20d20
56
config.py
56
config.py
|
@ -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()
|
||||||
|
|
Loading…
Reference in a new issue