Ajout de la détection des timestamps futurs dans le système de build et mise à jour des messages d'avertissement
This commit is contained in:
@@ -7,6 +7,7 @@ public class CommandExecutor {
|
||||
private boolean debug;
|
||||
private boolean needsUpdate = false; // Pour tracker si quelque chose doit être mis à jour
|
||||
private boolean isCircular = false; // Pour tracker si un cycle a été détecté
|
||||
private boolean futureTimestampDetected = false; // Pour détecter les timestamps dans le futur
|
||||
|
||||
public CommandExecutor(boolean debug, boolean isCircular) {
|
||||
this.debug = debug;
|
||||
@@ -18,6 +19,18 @@ public class CommandExecutor {
|
||||
boolean ruleNeedsUpdate = rule.needsUpdate();
|
||||
if (ruleNeedsUpdate) {
|
||||
needsUpdate = true; // Au moins une règle doit être mise à jour
|
||||
|
||||
// Vérifier les timestamps des dépendances pour détecter ceux dans le futur
|
||||
for (String dependency : rule.getDependencies()) {
|
||||
if (dependency.startsWith("~")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
File depFile = new File(dependency);
|
||||
if (depFile.exists() && TimestampManager.getTimestamp(depFile) > System.currentTimeMillis()) {
|
||||
futureTimestampDetected = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Si la règle a besoin d'être mise à jour et qu'il n'y a pas de commandes
|
||||
@@ -56,6 +69,11 @@ public class CommandExecutor {
|
||||
}
|
||||
}
|
||||
|
||||
// Si on a détecté des timestamps dans le futur, afficher un avertissement à la fin (comme make)
|
||||
if (futureTimestampDetected && !isCircular) {
|
||||
System.out.println("bake: warning: Clock skew detected. Your build may be incomplete.");
|
||||
}
|
||||
|
||||
// Vérifier si cette règle est une cible directement demandée par l'utilisateur
|
||||
boolean isRequestedTarget = BakeCLI.getTargets().contains(rule.getName()) ||
|
||||
(BakeCLI.getTargets().isEmpty() && rule.getName().equals(BakefileParser.getFirstTarget()));
|
||||
|
||||
Reference in New Issue
Block a user