COMPOSE := {% if layout == 'part' %}cd .. && {% endif %}docker compose {% if serve != 'api' %}IMAGE := {{ project_slug }}/frontend {% endif %}changed = ! git diff --quiet $(1) -- $(2) 2>/dev/null stamp = { git update-ref $(1) HEAD 2>/dev/null || true; } .PHONY: {% if layout == 'root' %}env recreate rebuild restart logs down deploy {% endif %}fmt check build pre-deploy post-deploy dev fmt: bun run fix check: bun run check bun run lint build: {% if serve == 'api' %} $(COMPOSE) run --rm frontend-dev sh -c "bun install && bun run build" {% else %} $(COMPOSE) build frontend {% endif %} pre-deploy: @if $(call changed,refs/deploy/frontend,.) || {% if serve == 'api' %}! test -d build{% else %}! docker image inspect $(IMAGE) >/dev/null 2>&1{% endif %}; then \ $(MAKE) build && $(call stamp,refs/deploy/frontend); \ fi post-deploy: @: dev: bun run dev {% if layout == 'root' %} env: @test -f .env || cp .env.example .env @test -f docker-compose.override.yml || cp docker-compose.override.yml.example docker-compose.override.yml recreate: $(COMPOSE) up -d --force-recreate rebuild: build $(COMPOSE) up -d restart: $(COMPOSE) restart logs: $(COMPOSE) logs -f --tail=100 down: $(COMPOSE) down deploy: pre-deploy $(COMPOSE) up -d $(MAKE) post-deploy {% endif %}