155 lines
6.6 KiB
Makefile
155 lines
6.6 KiB
Makefile
# CertGames Backend Makefile
|
|
# 2025 | ©AngelaMos
|
|
|
|
|
|
PYTHON := python
|
|
|
|
.DEFAULT_GOAL := dev
|
|
|
|
MAKEFLAGS += --no-print-directory
|
|
|
|
.PHONY: help dev install reinstall check fix mypy clean tree TODO pylint
|
|
|
|
|
|
define ASCII
|
|
@echo "\033[35m"
|
|
@echo " ⡋⣡⣴⣶⣶⡀⠄⠄⠙⢿⣿⣿⣿⣿⣿⣴⣿⣿⣿⢃⣤⣄⣀⣥⣿"
|
|
@echo " ⢸⣇⠻⣿⣿⣿⣧⣀⢀⣠⡌⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⣿⣿"
|
|
@echo " ⢸⣿⣷⣤⣤⣤⣬⣙⣛⢿⣿⣿⣿⣿⣿⣿⡿⣿⣿⡍⠄⠄⢀⣤⣄⠉"
|
|
@echo " ⣖⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⢇⣿⣿⡷⠶⠶⢿⣿⣿⠇⢀"
|
|
@echo " ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣽⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣷⣶⣥⣴"
|
|
@echo " ⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿"
|
|
@echo " ⣦⣌⣛⣻⣿⣿⣧⠙⠛⠛⡭⠅⠒⠦⠭⣭⡻⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠄"
|
|
@echo " ⣿⣿⣿⣿⣿⣿⣿⡆⠄⠄⠄⠄⠄⠄⠄⠄⠹⠈⢋⣽⣿⣿⣿⣿⣵⣾"
|
|
@echo " ⣿⣿⣿⣿⣿⣿⣿⣿⠄⣴⣿⣶⣄⠄⣴⣶⠄⢀⣾⣿⣿⣿⣿⣿⣿⠃⠄⠄"
|
|
@echo " ⠈⠻⣿⣿⣿⣿⣿⣿⡄⢻⣿⣿⣿⠄⣿⣿⡀⣾⣿⣿⣿⣿⣛⠛⠁"
|
|
@echo " ⠄⠄⠈⠛⢿⣿⣿⣿⠁⠞⢿⣿⣿⡄⢿⣿⡇⣸⣿⣿⠿⠛⠁⠄"
|
|
@echo " ⠄⠄⠄⠄⠄⠉⠻⣿⣿⣾⣦⡙⠻⣷⣾⣿⠃⠿⠋⠁⠄"
|
|
@echo "\033[0m"
|
|
endef
|
|
|
|
|
|
|
|
help:
|
|
@echo "\033[1;91mC\033[1;92me\033[1;93mr\033[1;94mt\033[1;95mG\033[1;96ma\033[1;91mm\033[1;92me\033[1;93ms\033[0m \033[1;94mBackend\033[0m \033[1;95mTesting\033[0m \033[1;96mCommands\033[0m"
|
|
@echo "\033[1;5;93m==============================================\033[0m"
|
|
@echo ""
|
|
@echo "\033[1;4;96mSetup:\033[0m"
|
|
@echo " \033[92mmake \033[36minstall-dev\033[0m \033[94m- Install development dependencies\033[0m"
|
|
@echo " \033[92mmake \033[36mreinstall\033[0m \033[94m- Reinstall all dependencies with upgrades\033[0m"
|
|
@echo ""
|
|
@echo "\033[1;4;91mSyntax Checking (Ruff):\033[0m"
|
|
@echo " \033[92mmake \033[36mqa\033[0m \033[94m- Check all code for syntax issues\033[0m"
|
|
@echo "\033[1;4;91mSyntax Fixing (Ruff):\033[0m"
|
|
@echo " \033[92mmake \033[36mqa\033[0m \033[94m- Fix all code of syntax issues\033[0m"
|
|
@echo ""
|
|
@echo "\033[1;4;94mType Checking (mypy):\033[0m"
|
|
@echo " \033[92mmake \033[36mqa\033[0m \033[94m- Type check all code\033[0m"
|
|
@echo "\033[1;4;94mFormat:\033[0m"
|
|
@echo " \033[92mmake \033[36mqa\033[0m \033[94m- Format code\033[0m"
|
|
@echo ""
|
|
@echo "\033[1;4;92mUtilities:\033[0m"
|
|
@echo " \033[92mmake \033[36mclean\033[0m \033[94m- Remove all cache files\033[0m"
|
|
@echo " \033[92mmake \033[36mtree\033[0m \033[94m- Display the file tree\033[0m"
|
|
@echo " \033[92mmake \033[36mTODO\033[0m \033[94m- Find All TODO \033[0m"
|
|
@echo ""
|
|
@echo "\033[1;93mCurrent default domain: \033[1;5;95m$(DOMAIN)\033[0m"
|
|
@echo ""
|
|
@echo "\033[1;4;93mAvailable domains:\033[0m"
|
|
@echo " \033[91maccount\033[0m, \033[92mcommunity\033[0m, \033[93mcontent\033[0m, \033[94mfreemium\033[0m, \033[95mgames\033[0m,"
|
|
@echo " \033[96mmarketing\033[0m, \033[91mprogression\033[0m, \033[92mshop\033[0m, \033[93mtesting\033[0m, \033[94mtools\033[0m"
|
|
@echo ""
|
|
@echo "\033[95m ------------------------------"
|
|
@echo "\033[34m ⣿⣿⣿⡷⠊⡢⡹⣦⡑⢂⢕⢂⢕⢂⢕⢂⠕⠔⠌⠝⠛⠶⠶⢶⣦⣄⢂⢕⢂⢕"
|
|
@echo "\033[34m ⣿⣿⠏⣠⣾⣦⡐⢌⢿⣷⣦⣅⡑⠕⠡⠐⢿⠿⣛⠟⠛⠛⠛⠛⠡⢷⡈⢂⢕⢂"
|
|
@echo "\033[34m ⠟⣡⣾⣿⣿⣿⣿⣦⣑⠝⢿⣿⣿⣿⣿⣿⡵⢁⣤⣶⣶⣿⢿⢿⢿⡟⢻⣤⢑⢂"
|
|
@echo "\033[36m ⣾⣿⣿⡿⢟⣛⣻⣿⣿⣿⣦⣬⣙⣻⣿⣿⣷⣿⣿⢟⢝⢕⢕⢕⢕⢽⣿⣿⣷⣔"
|
|
@echo "\033[36m ⣿⣿⠵⠚⠉⢀⣀⣀⣈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣗⢕⢕⢕⢕⢕⢕⣽⣿⣿⣿⣿"
|
|
@echo "\033[36m ⢷⣂⣠⣴⣾⡿⡿⡻⡻⣿⣿⣴⣿⣿⣿⣿⣿⣿⣷⣵⣵⣵⣷⣿⣿⣿⣿⣿⣿⡿"
|
|
@echo "\033[36m ⢌⠻⣿⡿⡫⡪⡪⡪⡪⣺⣿⣿⣿⣿⣿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃"
|
|
@echo "\033[32m ⠣⡁⠹⡪⡪⡪⡪⣪⣾⣿⣿⣿⣿⠋⠐⢉⢍⢄⢌⠻⣿⣿⣿⣿⣿⣿⣿⣿⠏⠈"
|
|
@echo "\033[32m ⡣⡘⢄⠙⣾⣾⣾⣿⣿⣿⣿⣿⣿⡀⢐⢕⢕⢕⢕⢕⡘⣿⣿⣿⣿⣿⣿⠏⠠⠈"
|
|
@echo "\033[32m ⠌⢊⢂⢣⠹⣿⣿⣿⣿⣿⣿⣿⣿⣧⢐⢕⢕⢕⢕⢕⢅⣿⣿⣿⣿⡿⢋⢜⠠⠈"
|
|
@echo "\033[95m ------------------------------"
|
|
@echo "\033[0m"
|
|
|
|
|
|
|
|
|
|
|
|
venv:
|
|
@echo "Creating and initializing virtual environment in .venv..."
|
|
@python3 -m venv .venv
|
|
|
|
# If you use bash, change @zsh
|
|
# can also run as just 'make'
|
|
dev:
|
|
@zsh -c "source .venv/bin/activate && exec zsh"
|
|
$(call ASCII)
|
|
|
|
# ==================== Setup ====================
|
|
install:
|
|
@echo "Installing development dependencies..."
|
|
pip install -e ".[dev]"
|
|
|
|
reinstall:
|
|
@echo "Reinstalling all dependencies (including upgrades)..."
|
|
pip install -e ".[dev]" --upgrade --upgrade-strategy eager
|
|
$(call ASCII)
|
|
|
|
|
|
# ==================== Syntax Checking (Ruff) ====================
|
|
check:
|
|
@echo "\033[1;3;4;96m======== Checking All Code ========\033[0m"
|
|
@ruff check .
|
|
$(call ASCII)
|
|
|
|
|
|
# ==================== Syntax Checking (Ruff) ====================
|
|
fix:
|
|
@echo "\033[1;3;4;96m======== ruff fix All Code ========\033[0m"
|
|
@ruff check . --fix
|
|
$(call ASCII)
|
|
|
|
|
|
# ======================= In Depth Linting (pylint)=======================
|
|
pylint:
|
|
@echo "\033[1;3;4;96m======== Linting All Code ========\033[0m"
|
|
@pylint .
|
|
$(call ASCII)
|
|
|
|
# ======================= Type Checking (mypy) =======================
|
|
mypy:
|
|
@echo "\033[1;3;4;96m======== Type Checking All Code ========\033[0m"
|
|
@mypy .
|
|
$(call ASCII)
|
|
|
|
|
|
# ======================== Yapf Format =============================
|
|
format:
|
|
@echo "\033[1;3;4;96m======== Formatting only qa/ ========\033[0m"
|
|
@yapf -i -r -vv models/ repositories/ schemas/ scanners/ core/ factory/
|
|
$(call ASCII)
|
|
|
|
# ==================== Utilities ====================
|
|
clean:
|
|
@echo "\033[1;3;4;96m======== Cleaning Cache Files ========\033[0m"
|
|
find . -type f -name "*.pyc" -delete
|
|
find . -type d -name "__pycache__" -delete
|
|
find . -type d -name ".pytest_cache" -exec rm -rf {} + 2>/dev/null || true
|
|
find . -type d -name ".mypy_cache" -exec rm -rf {} + 2>/dev/null || true
|
|
find . -type d -name ".ruff_cache" -exec rm -rf {} + 2>/dev/null || true
|
|
find . -type f -name ".coverage" -delete
|
|
$(call ASCII)
|
|
|
|
tree:
|
|
@echo "\033[1;3;4;96m======== Creating Tree ========\033[0m"
|
|
@tree -I 'node_modules|.git|*.log|dist|build|*.cache|certgames.egg-info|context|.venv|*.env|qa_context'
|
|
$(call ASCII)
|
|
|
|
TODO:
|
|
@echo "\033[1;3;4;96m======== Looking for TODO's ========\033[0m"
|
|
@find . -name "*.py" -print0 | xargs -0 pylint --disable=all --enable=W0511 --msg-template='{path}:{line}:{column}: {msg_id}: {msg} ({symbol})' || true
|
|
$(call ASCII)
|
|
|