paws/paws/config.py
2020-01-13 04:59:27 -05:00

80 lines
2.1 KiB
Python

import sys
import os
import logging as logger
from os import environ as env
from os.path import isdir, isfile, abspath, dirname, basename
from envbash import load_envbash
from .functions import bool_check
VERSION = '0.1'
mastodir = env.get('MASTODIR', os.getcwd())
stor_path = abspath(f'{mastodir}/paws-data')
if not isdir(stor_path):
os.makedirs(stor_path, exist_ok=True)
if not bool_check(env.get('LOGDATE', 'yes').lower()):
log_date = ''
else:
log_date = '[%(asctime)s] '
logging = logger.getLogger()
logging.setLevel(logger.DEBUG)
log_format = f'{log_date} %(levelname)s: %(message)s'
logger.addLevelName(5, 'VERBOSE')
logger.addLevelName(30, 'WARN')
logger.addLevelName(50, 'CRIT')
console = logger.StreamHandler()
console.name = 'Console Log'
console.level = logger.INFO
console.formatter = logger.Formatter(log_format)
logging.addHandler(console)
full_path = abspath(sys.executable) if getattr(sys, 'frozen', False) else abspath(__file__)
script_path = getattr(sys, '_MEIPASS', dirname(abspath(__file__)))
script_name = basename(full_path)
if not isfile(f'{mastodir}/.env.production'):
logging.error(f'Mastodon environment file doesn\'t exist: {mastodir}/.env.production')
else:
load_envbash(f'{mastodir}/.env.production')
if not isfile(f'{stor_path}/production.env'):
logging.error(f'HECC environment file doesn\'t exist: {stor_path}/production.env')
else:
load_envbash(f'{stor_path}/production.env')
MASTOCONFIG={
'domain': env.get('WEB_DOMAIN', env.get('LOCAL_DOMAIN', 'localhost:3000')),
'dbhost': env.get('DB_HOST', '/var/run/postgresql'),
'dbport': env.get('DB_PORT', 5432),
'dbname': env.get('DB_NAME', 'mastodon_production'),
'dbuser': env.get('DB_USER', env.get('USER')),
'dbpass': env.get('DB_PASS')
}
HECCCONFIG = {
'host': env.get('HECC_HOST', '127.0.0.1'),
'port': env.get('HECC_PORT', 3001),
'dbhost': env.get('HECC_DBHOST', MASTOCONFIG['dbhost']),
'dbport': env.get('HECC_DBPORT', MASTOCONFIG['dbport']),
'dbname': env.get('HECC_DBNAME', 'hecc'),
'dbuser': env.get('HECC_DBUSER', MASTOCONFIG['dbuser']),
'dbpass': env.get('HECC_DBPASS', MASTOCONFIG['dbpass'])
}