linklogger/var.py

60 lines
1.6 KiB
Python

import configparser
import logging
import os
from colorlog import ColoredFormatter
log_level = logging.DEBUG
log_format = "%(log_color)s%(levelname)-8s%(reset)s %(log_color)s%(message)s%(reset)s"
logging.root.setLevel(log_level)
formatter = ColoredFormatter(log_format)
stream = logging.StreamHandler()
stream.setLevel(log_level)
stream.setFormatter(formatter)
LOG = logging.getLogger("pythonConfig")
LOG.setLevel(log_level)
LOG.addHandler(stream)
# If the app is running in Docker
if "BASE_URL" in os.environ or "IP_TO_LOCATION" in os.environ:
BASE_URL = os.environ["BASE_URL"]
IP_TO_LOCATION = (
True if os.environ["IP_TO_LOCATION"].upper() in ["TRUE", "T"] else False
)
if IP_TO_LOCATION:
API_KEY = os.environ["API_KEY"]
else:
API_KEY = None
# Otherwise, the app is running on bare metal
try:
with open("config.ini", "r") as f:
config = configparser.ConfigParser()
config.read_string(f.read())
BASE_URL = config["CONFIG"]["BASE_URL"]
IP_TO_LOCATION = (
True
if config["CONFIG"]["IP_TO_LOCATION"].upper() in ["TRUE", "T"]
else False
)
if IP_TO_LOCATION:
API_KEY = config["CONFIG"]["API_KEY"]
else:
API_KEY = None
except FileNotFoundError:
config = configparser.ConfigParser()
config["CONFIG"] = {"BASE_URL": "", "IP_TO_LOCATION": "", "API_KEY": ""}
with open("config.ini", "w") as configfile:
config.write(configfile)
LOG.error(
"`config.ini` has been created. Fill out the necessary information then re-run."
)
exit()