# duckbrain-toolbox: atajos del ciclo de desarrollo y publicacion del phar.
# `publish` requiere FORGEJO_TOKEN en el entorno (token de la API con write:repository).

CONFIG  := packages/commands/src/Toolbox/Config.php
VERSION := $(shell grep -oP "const VERSION = '\K[^']+" $(CONFIG))

.PHONY: help test build compat release publish check clean

help: ## Muestra esta ayuda
	@grep -hE '^[a-z-]+:.*## ' $(MAKEFILE_LIST) | sed -E 's/^([a-z-]+):.*## (.+)$$/  make \1  \xe2\x80\x94  \2/'

test: ## Corre la suite de pruebas (harness propio, sin phpunit)
	php tests/run.php

build: ## Construye dist/duckbrain.phar y su .sha256
	scripts/build-phar

compat: ## Barrido de compatibilidad contra el core real (requiere red)
	scripts/compat-sweep $(if $(ARGS),$(ARGS),)

release: ## Asistente interactivo para versionar un paquete (scripts/release)
	./scripts/release $(if $(ARGS),$(ARGS),)

publish: build ## Crea/mueve la release v$(VERSION) en Forgejo y sube los assets
	scripts/publish-phar

check: ## Pregunta al servidor si hay un instalador mas nuevo (exit 1 si la hay)
	php bin/duckbrain self-update --check

clean: ## Borra dist/
	rm -rf dist
