From 930bb88417b8c872903a909344cb4650661dba03 Mon Sep 17 00:00:00 2001 From: BeauTroll <-> Date: Wed, 17 Dec 2025 05:24:18 +0100 Subject: [PATCH] Refactor Makefile with improved styling and color output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reorganized Makefile with color-coded output, better organization with section headers, and additional helper commands (env-example, quick-setup). Updated all echo commands to use -e flag for ANSI color support and improved help formatting with sorted commands. đŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- Makefile | 179 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 122 insertions(+), 57 deletions(-) diff --git a/Makefile b/Makefile index c3d8787..5b5bf4d 100644 --- a/Makefile +++ b/Makefile @@ -1,86 +1,151 @@ -.PHONY: help up down restart ps logs logs-f backup restore update health shell-gitea shell-db clean +# Makefile pour Gitea - Agence66 +# Usage: make [commande] + +.PHONY: help up down restart ps logs logs-f backup restore update health shell-gitea shell-db clean pull build config admin-create stats env-example # Include .env file if it exists -include .env export -help: ## Afficher cette aide - @echo "Commandes disponibles pour Gitea Docker :" +# Couleurs pour l'affichage +BLUE := \033[0;34m +GREEN := \033[0;32m +YELLOW := \033[1;33m +RED := \033[0;31m +NC := \033[0m + +help: ## Affiche cette aide + @echo -e "$(BLUE)Gitea - Agence66$(NC)" @echo "" - @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}' + @echo -e "$(YELLOW)Commandes disponibles:$(NC)" + @grep -hE '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " $(GREEN)%-20s$(NC) %s\n", $$1, $$2}' -up: ## DĂ©marrer tous les services - @echo "DĂ©marrage des services Gitea..." +## Gestion des services + +up: ## DĂ©marre tous les services + @echo -e "$(BLUE)DĂ©marrage des services Gitea...$(NC)" @docker compose up -d - @echo "Services dĂ©marrĂ©s. AccĂ©dez Ă  Gitea sur http://localhost:3000" + @echo -e "$(GREEN)Services dĂ©marrĂ©s !$(NC) AccĂ©dez Ă  Gitea sur http://localhost:3000" -down: ## ArrĂȘter tous les services - @echo "ArrĂȘt des services..." +down: ## ArrĂȘte tous les services + @echo -e "$(YELLOW)ArrĂȘt des services...$(NC)" @docker compose down + @echo -e "$(GREEN)Services arrĂȘtĂ©s$(NC)" -restart: ## RedĂ©marrer tous les services - @echo "RedĂ©marrage des services..." +restart: ## RedĂ©marre tous les services + @echo -e "$(BLUE)RedĂ©marrage des services...$(NC)" @docker compose restart + @echo -e "$(GREEN)Services redĂ©marrĂ©s$(NC)" -ps: ## Afficher le statut des services +ps: ## Affiche le statut des services + @echo -e "$(BLUE)Statut des services:$(NC)" @docker compose ps -logs: ## Afficher les logs (derniĂšres 100 lignes) +## Logs et monitoring + +logs: ## Affiche les logs (derniĂšres 100 lignes) + @echo -e "$(BLUE)Logs des services (100 derniĂšres lignes):$(NC)" @docker compose logs --tail=100 -logs-f: ## Suivre les logs en temps rĂ©el +logs-f: ## Suit les logs en temps rĂ©el + @echo -e "$(BLUE)Logs en temps rĂ©el (Ctrl+C pour arrĂȘter):$(NC)" @docker compose logs -f -backup: ## CrĂ©er une sauvegarde complĂšte (DB + repositories) - @bash scripts/backup.sh - -restore: ## Restaurer depuis une sauvegarde (usage: make restore FILE=backups/gitea_backup_YYYYMMDD_HHMMSS.tar.gz) - @if [ -z "$(FILE)" ]; then \ - echo "Erreur: SpĂ©cifiez le fichier de sauvegarde avec FILE="; \ - echo "Usage: make restore FILE=backups/gitea_backup_YYYYMMDD_HHMMSS.tar.gz"; \ - exit 1; \ - fi - @bash scripts/restore.sh "$(FILE)" - -update: ## Mettre Ă  jour Gitea (avec backup automatique) - @bash scripts/update.sh - -health: ## VĂ©rifier la santĂ© des services - @echo "État de santĂ© des services:" +health: ## VĂ©rifie la santĂ© des services + @echo -e "$(BLUE)État de santĂ© des services:$(NC)" @echo "" @docker compose ps --format "table {{.Name}}\t{{.Status}}\t{{.Health}}" @echo "" - @echo "DĂ©tails des health checks:" - @docker inspect --format='{{.Name}}: {{.State.Health.Status}}' $$(docker compose ps -q) 2>/dev/null || echo "Aucun service en cours d'exĂ©cution" + @echo -e "$(BLUE)DĂ©tails des health checks:$(NC)" + @docker inspect --format='{{.Name}}: {{.State.Health.Status}}' $$(docker compose ps -q) 2>/dev/null || echo -e "$(YELLOW)Aucun service en cours d'exĂ©cution$(NC)" -shell-gitea: ## Ouvrir un shell dans le conteneur Gitea - @docker compose exec gitea /bin/sh +stats: ## Affiche les statistiques d'utilisation des ressources + @echo -e "$(BLUE)Statistiques des conteneurs:$(NC)" + @docker stats --no-stream $$(docker compose ps -q) -shell-db: ## Ouvrir un shell PostgreSQL - @docker compose exec db psql -U $(POSTGRES_USER) -d $(POSTGRES_DATABASE) +## Sauvegarde et restauration -clean: ## Nettoyer les conteneurs arrĂȘtĂ©s et volumes non utilisĂ©s - @echo "Nettoyage des conteneurs arrĂȘtĂ©s..." - @docker compose down -v - @echo "Nettoyage terminĂ©" +backup: ## CrĂ©e une sauvegarde complĂšte (DB + repositories) + @echo -e "$(BLUE)CrĂ©ation de la sauvegarde...$(NC)" + @bash scripts/backup.sh + @echo -e "$(GREEN)Sauvegarde terminĂ©e$(NC)" -pull: ## TĂ©lĂ©charger les derniĂšres images Docker - @docker compose pull - -build: ## Rebuild les images si nĂ©cessaire - @docker compose build - -config: ## Valider et afficher la configuration docker-compose - @docker compose config - -# Commandes avancĂ©es -admin-create: ## CrĂ©er un utilisateur admin (usage: make admin-create USER=admin EMAIL=admin@example.com) - @if [ -z "$(USER)" ] || [ -z "$(EMAIL)" ]; then \ - echo "Usage: make admin-create USER=username EMAIL=email@example.com"; \ +restore: ## Restaure depuis une sauvegarde (usage: make restore FILE=backups/gitea_backup_YYYYMMDD_HHMMSS.tar.gz) + @if [ -z "$(FILE)" ]; then \ + echo -e "$(RED)Erreur: SpĂ©cifiez le fichier de sauvegarde avec FILE=$(NC)"; \ + echo -e "$(YELLOW)Usage: make restore FILE=backups/gitea_backup_YYYYMMDD_HHMMSS.tar.gz$(NC)"; \ exit 1; \ fi - @docker compose exec gitea gitea admin user create --admin --username $(USER) --email $(EMAIL) --password "ChangeMe123!" - @echo "Utilisateur admin créé. Mot de passe par dĂ©faut: ChangeMe123!" + @echo -e "$(BLUE)Restauration depuis $(FILE)...$(NC)" + @bash scripts/restore.sh "$(FILE)" + @echo -e "$(GREEN)Restauration terminĂ©e$(NC)" -stats: ## Afficher les statistiques d'utilisation des ressources - @docker stats --no-stream $$(docker compose ps -q) +## Mise Ă  jour et maintenance + +update: ## Met Ă  jour Gitea (avec backup automatique) + @echo -e "$(BLUE)Mise Ă  jour de Gitea...$(NC)" + @bash scripts/update.sh + @echo -e "$(GREEN)Mise Ă  jour terminĂ©e$(NC)" + +pull: ## TĂ©lĂ©charge les derniĂšres images Docker + @echo -e "$(BLUE)TĂ©lĂ©chargement des derniĂšres images...$(NC)" + @docker compose pull + @echo -e "$(GREEN)Images tĂ©lĂ©chargĂ©es$(NC)" + +build: ## Rebuild les images si nĂ©cessaire + @echo -e "$(BLUE)Build des images...$(NC)" + @docker compose build + @echo -e "$(GREEN)Build terminĂ©$(NC)" + +config: ## Valide et affiche la configuration docker-compose + @echo -e "$(BLUE)Configuration docker-compose:$(NC)" + @docker compose config + +## Shells et accĂšs + +shell-gitea: ## Ouvre un shell dans le conteneur Gitea + @echo -e "$(BLUE)Ouverture du shell Gitea...$(NC)" + @docker compose exec gitea /bin/sh + +shell-db: ## Ouvre un shell PostgreSQL + @echo -e "$(BLUE)Ouverture du shell PostgreSQL...$(NC)" + @docker compose exec db psql -U $(POSTGRES_USER) -d $(POSTGRES_DATABASE) + +## Administration + +admin-create: ## CrĂ©e un utilisateur admin (usage: make admin-create USER=admin EMAIL=admin@example.com) + @if [ -z "$(USER)" ] || [ -z "$(EMAIL)" ]; then \ + echo -e "$(RED)Usage: make admin-create USER=username EMAIL=email@example.com$(NC)"; \ + exit 1; \ + fi + @echo -e "$(BLUE)CrĂ©ation de l'utilisateur admin...$(NC)" + @docker compose exec gitea gitea admin user create --admin --username $(USER) --email $(EMAIL) --password "ChangeMe123!" + @echo -e "$(GREEN)Utilisateur admin créé !$(NC)" + @echo -e "$(YELLOW)Mot de passe par dĂ©faut: ChangeMe123!$(NC)" + +## Nettoyage + +clean: ## Nettoie les conteneurs arrĂȘtĂ©s et volumes non utilisĂ©s + @echo -e "$(YELLOW)Nettoyage des conteneurs et volumes...$(NC)" + @docker compose down -v + @echo -e "$(GREEN)Nettoyage terminĂ©$(NC)" + +## Configuration + +env-example: ## Affiche un exemple de fichier .env + @if [ -f .env.example ]; then \ + cat .env.example; \ + else \ + echo -e "$(RED)Fichier .env.example non trouvĂ©$(NC)"; \ + fi + +quick-setup: ## Configuration rapide (copie .env.example vers .env) + @if [ ! -f .env ]; then \ + echo -e "$(BLUE)CrĂ©ation du fichier .env...$(NC)"; \ + cp .env.example .env; \ + echo -e "$(GREEN)Fichier .env créé !$(NC)"; \ + echo -e "$(YELLOW)Éditez maintenant .env avec vos vraies valeurs:$(NC)"; \ + echo " nano .env"; \ + else \ + echo -e "$(YELLOW)Le fichier .env existe dĂ©jĂ $(NC)"; \ + fi