From 728ad157e97d6207fa76dde82047c5b2ba7dcfa3 Mon Sep 17 00:00:00 2001 From: Sli Date: Wed, 26 Feb 2025 14:37:22 +0100 Subject: [PATCH] Apply review comments --- .gitignore | 2 +- docs/tutorial/install-advanced.md | 10 +++++++++- sith/composer.py | 5 +++-- sith/settings.py | 15 +++++++++++++-- 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index eb78b41d..65bd0e2e 100644 --- a/.gitignore +++ b/.gitignore @@ -18,10 +18,10 @@ sith/search_indexes/ .coverage coverage_report/ node_modules/ +.env # compiled documentation site/ -.env ### Redis ### diff --git a/docs/tutorial/install-advanced.md b/docs/tutorial/install-advanced.md index 897277c1..9fc54a8a 100644 --- a/docs/tutorial/install-advanced.md +++ b/docs/tutorial/install-advanced.md @@ -85,13 +85,21 @@ des services externes (redis, vite et autres futures). En mode production, il est nécessaire de le désactiver puisque normalement tous ces services sont déjà configurés. -Pour désactiver Honcho il suffit de sélectionner aucun `PROCFILE_` dans la config. +Pour désactiver Honcho il suffit de ne sélectionner aucun `PROCFILE_` dans la config. ```dotenv PROCFILE_RUNSERVER= PROCFILE_PYTEST= ``` +!!! note + + Si honcho ne tourne plus, la recompilation automatique + des fichiers statiques ne se fait plus. + Si vous en avez besoin et que vous travaillez sans honcho, + vous devez ouvrir une autre fenêtre de votre terminal + et lancer la commande `npm run serve` + ## Configurer Redis en service externe Redis est installé comme dépendance mais pas lancé par défaut. diff --git a/sith/composer.py b/sith/composer.py index e0a97bbd..b1d90d92 100644 --- a/sith/composer.py +++ b/sith/composer.py @@ -2,6 +2,7 @@ import logging import signal import subprocess import sys +from pathlib import Path import psutil @@ -40,7 +41,7 @@ def is_composer_running() -> bool: return False -def start_composer(procfile: str): +def start_composer(procfile: Path): """Starts the composer and stores the PID as an environment variable This allows for running smoothly with the django reloader """ @@ -51,7 +52,7 @@ def start_composer(procfile: str): ) return process = subprocess.Popen( - [sys.executable, "-m", "honcho", "-f", procfile, "start"], + [sys.executable, "-m", "honcho", "-f", str(procfile), "start"], ) write_pid(process.pid) diff --git a/sith/settings.py b/sith/settings.py index b9acd61d..a95f6725 100644 --- a/sith/settings.py +++ b/sith/settings.py @@ -50,11 +50,22 @@ from .honeypot import custom_honeypot_error env = Env() env.read_env() + +@env.parser_for("optional_file") +def optional_file_parser(value: str) -> Path | None: + if not value: + return None + path = Path(value) + if not path.is_file(): + return None + return path + + BASE_DIR = Path(__file__).parent.parent.resolve() # Composer settings -PROCFILE_RUNSERVER = env.str("PROCFILE_RUNSERVER", None) -PROCFILE_PYTEST = env.str("PROCFILE_PYTEST", None) +PROCFILE_RUNSERVER = env.optional_file("PROCFILE_RUNSERVER", None) +PROCFILE_PYTEST = env.optional_file("PROCFILE_PYTEST", None) ## File path used to avoid running the composer multiple times at the same time COMPOSER_PID_PATH = env.path("COMPOSER_PID_PATH", BASE_DIR / "composer.pid")