65 lines
2.6 KiB
Makefile
65 lines
2.6 KiB
Makefile
{%- set svc_modules = [] -%}
|
|
{%- if 'api' in backend_services %}{% set _ = svc_modules.append("api") %}{% endif -%}
|
|
{%- if 'aiogram_bot' in backend_services %}{% set _ = svc_modules.append("bot") %}{% endif -%}
|
|
{%- if 'taskiq_worker' in backend_services %}{% set _ = svc_modules.append("worker") %}{% endif -%}
|
|
{%- if 'kurigram_userbot' in backend_services %}{% set _ = svc_modules.append("userbot") %}{% endif -%}
|
|
{%- if 'scheduler' in backend_services and 'taskiq_worker' not in backend_services %}{% set _ = svc_modules.append("scheduler") %}{% endif -%}
|
|
{%- set has_script = dynamic_config and svc_modules -%}
|
|
COMPOSE := {% if layout == 'part' %}cd .. && {% endif %}docker compose
|
|
|
|
.PHONY: {% if layout == 'root' %}env recreate rebuild restart logs down {% endif %}fmt check{% if svc_modules %} build{% endif %}{% if database == 'postgres' %} migrate revision{% endif %}{% if has_script %} script{% endif %}{% if 'kurigram_userbot' in backend_services %} session{% endif %}
|
|
|
|
fmt:
|
|
uv run ruff format
|
|
uv run ruff check --fix
|
|
|
|
check:
|
|
uv run ruff format --check
|
|
uv run ruff check
|
|
uv run ty check
|
|
{% if svc_modules %} uv run python scripts/check_imports.py
|
|
{% endif %}{% if svc_modules %}
|
|
build:
|
|
$(COMPOSE) build {{ svc_modules[0] }}
|
|
{% endif %}{% if layout == 'root' %}
|
|
env:
|
|
@fresh=; test -f .env || { cp .env.example .env; fresh=1; }; \
|
|
if ! test -f docker-compose.override.yml; then \
|
|
cp docker-compose.override.yml.example docker-compose.override.yml; \
|
|
for port in $$(sed -n 's/.*127\.0\.0\.1:\([0-9]*\):.*/\1/p' docker-compose.override.yml | sort -u); do \
|
|
random=$$((20000 + $$(od -An -N2 -tu2 /dev/urandom) % 40000)); \
|
|
sed "s/127\.0\.0\.1:$$port:/127.0.0.1:$$random:/" docker-compose.override.yml > docker-compose.override.yml.tmp && mv docker-compose.override.yml.tmp docker-compose.override.yml; \
|
|
test -z "$$fresh" || { sed "s|localhost:$$port/|localhost:$$random/|" .env > .env.tmp && mv .env.tmp .env; }; \
|
|
done; \
|
|
fi
|
|
|
|
recreate:
|
|
$(COMPOSE) up -d --force-recreate
|
|
|
|
rebuild: build
|
|
$(COMPOSE) up -d
|
|
|
|
restart:
|
|
$(COMPOSE) restart
|
|
|
|
logs:
|
|
$(COMPOSE) logs -f --tail=100
|
|
|
|
down:
|
|
$(COMPOSE) down
|
|
{% endif %}{% if database == 'postgres' %}
|
|
migrate:
|
|
$(COMPOSE) run --rm migrator $(or $(filter-out $@,$(MAKECMDGOALS)),upgrade head)
|
|
|
|
revision:
|
|
$(COMPOSE) run --rm migrator revision --autogenerate -m "$(m)"
|
|
{% endif %}{% if has_script %}
|
|
script:
|
|
@$(COMPOSE) run --rm {{ svc_modules[0] }} scripts.$(word 2,$(MAKECMDGOALS)) $(wordlist 3,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
|
|
{% endif %}{% if database == 'postgres' or has_script %}
|
|
%:
|
|
@:
|
|
{% endif %}{% if 'kurigram_userbot' in backend_services %}
|
|
session:
|
|
uv run python scripts/session/create.py
|
|
{% endif %} |