From 039f9190e6693aa58daf8e7b1127812483ac70be Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Wed, 2 Apr 2025 21:59:19 +0200 Subject: [PATCH] updates makefil. deletes unnecessary files --- Makefile | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- contents | Bin 11608 -> 0 bytes 2 files changed, 59 insertions(+), 1 deletion(-) delete mode 100644 contents diff --git a/Makefile b/Makefile index b09e46a..53453ac 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,65 @@ all: run clean: rm -rf venv build dist .pytest_cache .mypy_cache *.egg-info -DB_PATH=scipaperloader/papers.db +DB_PATH=scipaperloader/papers# Backup the database +backup-db: + @mkdir -p backups + @timestamp=$$(date +%Y%m%d_%H%M%S); \ + cp $(DB_PATH) backups/papers_$$timestamp.db && \ + echo "Database backed up to backups/papers_$$timestamp.db" + +# Create sample test data +sample-data: venv + $(PYTHON) scipaperloader/scripts/create_sample_data.py + +# Export database as SQL +export-db: venv + @mkdir -p exports + @timestamp=$$(date +%Y%m%d_%H%M%S); \ + $(PYTHON) -c "import sqlite3; conn = sqlite3.connect('$(DB_PATH)'); with open('exports/papers_$$timestamp.sql', 'w') as f: f.write(''.join(conn.iterdump()));" && \ + echo "Database exported to exports/papers_$$timestamp.sql" # Run with production settings + run-prod: venv + FLASK_ENV=production venv/bin/flask --app scipaperloader run --host=0.0.0.0 + +# Check for security vulnerabilities +security-check: venv +$(PIP) install safety +venv/bin/safety check + +# Run specific migration commands +db-migrate: venv + venv/bin/flask --app scipaperloader db migrate -m "$(message)" + +db-upgrade: venv + venv/bin/flask --app scipaperloader db upgrade + +db-downgrade: venv + venv/bin/flask --app scipaperloader db downgrade # Generate API documentation using sphinx + +docs: venv + $(PIP) install sphinx sphinx_rtd_theme + cd docs && venv/bin/sphinx-build -b html source build + +# Create a code coverage report +coverage: venv + $(PYTHON) -m pytest --cov=scipaperloader --cov-report=html + @echo "Coverage report generated in htmlcov/" + +# Generate a requirements.txt file +requirements: venv + $(PIP) freeze > requirements.txt + @echo "Requirements file updated" # Show project stats + stats: + @echo "Lines of Python code:" + @find scipaperloader -name "*.py" | xargs wc -l | sort -nr + @echo "Number of routes:" + @grep -r "@bp.route" scipaperloader | wc -l + @echo "Database file size:" + @du -h $(DB_PATH) 2>/dev/null || echo "Database file not found" + + # Show TODOs in code + todos: + @grep -r "TODO\|FIXME" scipaperloader || echo "No TODOs found".db reset-db: rm -f $(DB_PATH) diff --git a/contents b/contents deleted file mode 100644 index a1e7c8e27498f798263be00865745a4414c3c909..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11608 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