Added env vars to override all storage dirs

This commit is contained in:
Donkie
2023-11-25 21:59:05 +01:00
parent 796523a860
commit 0dee856e80
3 changed files with 33 additions and 4 deletions

View File

@@ -19,6 +19,18 @@
# Default if not set: TRUE
#SPOOLMAN_AUTOMATIC_BACKUP=TRUE
# Data directory, where the SQLite database is stored
# Default if not set: /home/<user>/.local/share/spoolman
#SPOOLMAN_DIR_DATA=/home/pi/spoolman_data
# Backup directory, where the SQLite database backups are stored
# Default if not set: /home/<user>/.local/share/spoolman/backups
#SPOOLMAN_DIR_BACKUPS=/home/pi/spoolman_data/backups
# Log directory
# Default if not set: /home/<user>/.local/share/spoolman
#SPOOLMAN_DIR_LOGS=/home/pi/spoolman_data
# Host and port to listen on
SPOOLMAN_HOST=0.0.0.0
SPOOLMAN_PORT=7912

View File

@@ -226,7 +226,11 @@ def get_data_dir() -> Path:
Returns:
Path: The data directory.
"""
data_dir = Path(user_data_dir("spoolman"))
env_data_dir = os.getenv("SPOOLMAN_DIR_DATA")
if env_data_dir is not None:
data_dir = Path(env_data_dir)
else:
data_dir = Path(user_data_dir("spoolman"))
data_dir.mkdir(parents=True, exist_ok=True)
return data_dir
@@ -237,7 +241,13 @@ def get_logs_dir() -> Path:
Returns:
Path: The logs directory.
"""
return get_data_dir()
env_logs_dir = os.getenv("SPOOLMAN_DIR_LOGS")
if env_logs_dir is not None:
logs_dir = Path(env_logs_dir)
else:
logs_dir = get_data_dir()
logs_dir.mkdir(parents=True, exist_ok=True)
return logs_dir
def get_backups_dir() -> Path:
@@ -246,8 +256,11 @@ def get_backups_dir() -> Path:
Returns:
Path: The backups directory.
"""
data_dir = get_data_dir()
backups_dir = data_dir.joinpath("backups")
env_backups_dir = os.getenv("SPOOLMAN_DIR_BACKUPS")
if env_backups_dir is not None:
backups_dir = Path(env_backups_dir)
else:
backups_dir = get_data_dir().joinpath("backups")
backups_dir.mkdir(parents=True, exist_ok=True)
return backups_dir

View File

@@ -79,6 +79,10 @@ async def startup() -> None:
env.get_build_date(),
)
logger.info("Using data directory: %s", env.get_data_dir().resolve())
logger.info("Using logs directory: %s", env.get_logs_dir().resolve())
logger.info("Using backups directory: %s", env.get_backups_dir().resolve())
logger.info("Setting up database...")
database.setup_db(database.get_connection_url())