diff --git a/Makefile b/Makefile index 1340ee9..e7ee44d 100644 --- a/Makefile +++ b/Makefile @@ -43,11 +43,17 @@ init: ## Initialize project (usage: make init name=my-project description="my de echo "Usage: make init name= description="; \ exit 1; \ fi - @echo "$(YELLOW)🚀 Initializing project $(name)...$(RESET)" - @sed -i.bak "s/name = \"python-template\"/name = \"$(name)\"/" pyproject.toml && rm pyproject.toml.bak - @sed -i.bak "s/description = \"Add your description here\"/description = \"$(description)\"/" pyproject.toml && rm pyproject.toml.bak - @sed -i.bak "s/# Python-Template/# $(name)/" README.md && rm README.md.bak - @sed -i.bak "s/Opinionated Python project stack. 🔋 Batteries included. <\/b>/$(description)<\/b>/" README.md && rm README.md.bak + @CURRENT_NAME=$$(sed -n 's/^name = "\(.*\)"/\1/p' pyproject.toml | head -1); \ + CURRENT_DESC=$$(sed -n 's/^description = "\(.*\)"/\1/p' pyproject.toml | head -1); \ + ESC_NAME=$$(printf '%s\n' "$$CURRENT_NAME" | sed 's/[.[\*^$$\/]/\\&/g'); \ + ESC_DESC=$$(printf '%s\n' "$$CURRENT_DESC" | sed 's/[.[\*^$$\/]/\\&/g'); \ + ESC_NEW_NAME=$$(printf '%s\n' "$(name)" | sed 's/[&/\\]/\\&/g'); \ + ESC_NEW_DESC=$$(printf '%s\n' "$(description)" | sed 's/[&/|\\]/\\&/g'); \ + echo "$(YELLOW)🚀 Initializing project $(name)...$(RESET)"; \ + sed -i.bak "s/name = \"$$ESC_NAME\"/name = \"$$ESC_NEW_NAME\"/" pyproject.toml && rm pyproject.toml.bak; \ + sed -i.bak "s/description = \"$$ESC_DESC\"/description = \"$$ESC_NEW_DESC\"/" pyproject.toml && rm pyproject.toml.bak; \ + sed -i.bak "1s/^# .*/# $$ESC_NEW_NAME/" README.md && rm README.md.bak; \ + sed -i.bak "1,10s|.*|$$ESC_NEW_DESC|" README.md && rm README.md.bak @echo "$(GREEN)✅ Updated project name and description.$(RESET)" banner: check_uv ## Generate project banner image diff --git a/common/global_config.py b/common/global_config.py index f3dedf4..8f8b40b 100644 --- a/common/global_config.py +++ b/common/global_config.py @@ -189,9 +189,9 @@ class Config(BaseSettings): default_factory=lambda: os.getenv("GITHUB_ACTIONS") != "true" ) running_on: str = Field( - default_factory=lambda: "🖥️ local" - if os.getenv("GITHUB_ACTIONS") != "true" - else "☁️ CI" + default_factory=lambda: ( + "🖥️ local" if os.getenv("GITHUB_ACTIONS") != "true" else "☁️ CI" + ) ) @classmethod