53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
import logging
|
|
import os
|
|
from functools import lru_cache
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@lru_cache(1)
|
|
def disable_cards_check():
|
|
if os.environ.get("DISABLE_CARDS", "").lower() in ("1", "true"):
|
|
return True
|
|
|
|
for env in (
|
|
"MIFARE_APP_MASTER_KEY",
|
|
"MIFARE_ACL_READ_BASE_KEY",
|
|
"MIFARE_ACL_WRITE_BASE_KEY",
|
|
):
|
|
if not os.getenv(env):
|
|
logger.critical(
|
|
f"Missing environment variable for scanner start: {env} \n Card scanner and related funcionality is disabled!" # noqa: E501
|
|
)
|
|
return True
|
|
return False
|
|
|
|
|
|
disable_cards = disable_cards_check()
|
|
|
|
if not disable_cards:
|
|
mifare_app_master_key = os.getenv("MIFARE_APP_MASTER_KEY")
|
|
mifare_acl_read_base_key = os.getenv("MIFARE_ACL_READ_BASE_KEY")
|
|
mifare_acl_write_base_key = os.getenv("MIFARE_ACL_WRITE_BASE_KEY")
|
|
|
|
|
|
def verify_settings():
|
|
important_envs = ["SECRET_KEY"]
|
|
other_envs = ["SQLALCHEMY_DATABASE_PATH", "LOCK_PIN", "UNLOCK_PIN", "MOCK_GPIO"]
|
|
for setting in important_envs:
|
|
if not os.getenv(setting):
|
|
raise ValueError(
|
|
f"Missing critical environment variable {setting}. Stopping..."
|
|
)
|
|
for setting in other_envs:
|
|
if setting not in os.environ:
|
|
logger.warning(f"Env var {setting} not set. Continuing with defaults.")
|
|
|
|
|
|
verify_settings()
|
|
secret_key = os.getenv("SECRET_KEY")
|
|
sqlalchemy_database_path = os.getenv("SQLALCHEMY_DATABASE_PATH")
|
|
lock_pin = os.getenv("LOCK_PIN")
|
|
unlock_pin = os.getenv("UNLOCK_PIN")
|
|
mock_gpio = os.getenv("MOCK_GPIO")
|