# Makefile pour Vermine2047
# Ce fichier fournit des commandes courantes pour le développement
# Utilise uniquement LESS comme préprocesseur CSS

.PHONY: help install build build-less build-dev build-css watch clean lint

# Couleurs pour l'affichage
GREEN := \033[0;32m
YELLOW := \033[1;33m
NC := \033[0m # No Color

help: ## Affiche cette aide
	@echo "Commandes disponibles pour Vermine2047:"
	@echo ""
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[0;32m%-20s\033[0m %s\n", $$1, $$2}'
	@echo ""

install: ## Installe les dépendances npm
	@echo "$(YELLOW)Installation des dépendances npm...$(NC)"
	npm install
	@echo "$(GREEN)✓ Dépendances installées$(NC)"

build: build-less ## Compile LESS → vermine2047.min.css

build-less: ## Compile le LESS en CSS minifié (vermine2047.min.css)
	@echo "$(YELLOW)Compilation du LESS...$(NC)"
	npm run build:less
	@echo "$(GREEN)✓ LESS compilé$(NC)"

build-dev: ## Compile le LESS en CSS non minifié (vermine2047.dev.css)
	@echo "$(YELLOW)Compilation du LESS (mode dev)...$(NC)"
	npm run build:less:dev
	@echo "$(GREEN)✓ LESS compilé en mode dev$(NC)"

build-css: build-less build-dev ## Compile tout le CSS (minifié + dev)

watch: ## Lance le mode watch (recompilation automatique)
	@echo "$(YELLOW)Lancement du mode watch...$(NC)"
	npm run watch

clean: clean-css ## Nettoie les fichiers CSS générés

clean-css: ## Supprime les fichiers CSS compilés (garde vermine2047.css original)
	@echo "$(YELLOW)Nettoyage des fichiers CSS...$(NC)"
	npm run clean:css
	@echo "$(GREEN)✓ Fichiers CSS nettoyés$(NC)"

rebuild: clean build ## Reconstruit tout le CSS
	@echo "$(YELLOW)Reconstruction complète du CSS...$(NC)"
	npm run rebuild:css
	@echo "$(GREEN)✓ CSS reconstruit$(NC)"

lint: lint-less ## Lance le linting du code LESS

lint-less: ## Vérifie la qualité du code LESS
	@echo "$(YELLOW)Linting du code LESS...$(NC)"
	npm run lint:less
	@echo "$(GREEN)✓ Linting terminé$(NC)"

# Commandes utilitaires

launch-foundry: ## Lance FoundryVTT
	npm run launch_Foundry12

push-yaml: ## Push LDB vers YAML
	node ./tools/pushLDBtoYAML.mjs

pull-yaml: ## Pull YAML vers LDB
	node ./tools/pullYAMLtoLDB.mjs
