From f37ce4efe622bed9f246794931dc1fd9e729a737 Mon Sep 17 00:00:00 2001 From: berat-552 Date: Sat, 5 Jul 2025 16:07:00 +0100 Subject: [PATCH] add package command --- Makefile | 12 +++++++++++- backend/config.py | 12 +++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 49d0c0c..de2f05b 100644 --- a/Makefile +++ b/Makefile @@ -71,4 +71,14 @@ dev-full: dev-full-down: @echo "Stopping backend (Docker Compose)..." - docker compose -f docker-compose.dev.yml down \ No newline at end of file + docker compose -f docker-compose.dev.yml down + +# ==== Packaging ==== +.PHONY: package clean-dist + +package: + python -c "import os; os.environ['APP_ENV'] = 'prod'; import PyInstaller.__main__; PyInstaller.__main__.run(['--onefile', '--windowed', '--name', 'StudyForge', 'main.py'])" + + +clean-dist: + python -c "import shutil, os; [shutil.rmtree(d, ignore_errors=True) for d in ['build', 'dist']]; [os.remove(f) for f in ['StudyForge.spec'] if os.path.exists(f)]" diff --git a/backend/config.py b/backend/config.py index f12339f..b066e8e 100644 --- a/backend/config.py +++ b/backend/config.py @@ -1,9 +1,15 @@ import os -from dotenv import load_dotenv +import sys -load_dotenv() -ENV = os.getenv("APP_ENV", "dev") # default to dev if not set +def is_frozen(): + return getattr(sys, 'frozen', False) + + +# Default to prod if frozen (i.e. built with PyInstaller) +ENV = os.getenv("APP_ENV", "dev") +if is_frozen() and ENV == "dev": + ENV = "prod" if ENV == "prod": API_BASE_URL = "https://studyforge-api.onrender.com"