diff --git a/src/fr/monlouyan/bakefile/CommandExecutor.java b/src/fr/monlouyan/bakefile/CommandExecutor.java index cf1509c..852693e 100644 --- a/src/fr/monlouyan/bakefile/CommandExecutor.java +++ b/src/fr/monlouyan/bakefile/CommandExecutor.java @@ -13,23 +13,23 @@ public class CommandExecutor { } public void execute(Rule rule) { - if (rule.getCommands().isEmpty()) { - System.out.println("bake: Nothing to be done for '" + rule.getName() + "'."); - return; - } - // On vérifie d'abord si cette règle a besoin d'être mise à jour boolean ruleNeedsUpdate = rule.needsUpdate(); if (ruleNeedsUpdate) { needsUpdate = true; // Au moins une règle doit être mise à jour } + // Si la règle a besoin d'être mise à jour et qu'il n'y a pas de commandes + if (ruleNeedsUpdate && rule.getCommands().isEmpty()) { + return; // On ne fait rien mais on ne montre pas de message + } + for (String command : rule.getCommands()) { if (isCircular){ System.out.println(command); } - // Mais on n'exécute que si nécessaire + // On n'exécute que si nécessaire if (ruleNeedsUpdate) { try { if(!isCircular){ @@ -78,10 +78,19 @@ public class CommandExecutor { } } - // On affiche "up to date" seulement après avoir traité TOUTES les règles - // et seulement si AUCUNE règle n'avait besoin d'être mise à jour - if (rule.getName().equals(BakefileParser.getFirstTarget()) && !needsUpdate) { + // On n'affiche le message "up to date" que si : + // 1. C'est la première cible + // 2. Aucune règle n'avait besoin d'être mise à jour + // 3. On a des commandes à exécuter + if (rule.getName().equals(BakefileParser.getFirstTarget()) && !needsUpdate && !rule.getCommands().isEmpty()) { System.out.println("bake: `" + rule.getName() + "' is up to date."); } + // On affiche "Nothing to be done" uniquement si : + // 1. C'est la première cible + // 2. Aucune règle n'avait besoin d'être mise à jour + // 3. On n'a PAS de commandes à exécuter + else if (rule.getName().equals(BakefileParser.getFirstTarget()) && !needsUpdate && rule.getCommands().isEmpty()) { + System.out.println("bake: Nothing to be done for '" + rule.getName() + "'."); + } } } \ No newline at end of file