diff --git a/mch-cli/src/main/java/ca/bkaw/mch/cli/CommitCommand.java b/mch-cli/src/main/java/ca/bkaw/mch/cli/CommitCommand.java index e5a0670..717d9d7 100644 --- a/mch-cli/src/main/java/ca/bkaw/mch/cli/CommitCommand.java +++ b/mch-cli/src/main/java/ca/bkaw/mch/cli/CommitCommand.java @@ -19,10 +19,13 @@ public class CommitCommand implements Runnable { @Option(names = "--no-cache", negatable = true, defaultValue = "true", description = "Skip caching by looking at the current commit.") boolean cache; + @Option(names = "--verbose", defaultValue = "false", description = "Print more information while processing the commit.") + boolean verbose; + @Override public void run() { try { - CommitOperation.run(this.repository, this.commitMessage, this.cache); + CommitOperation.run(this.repository, this.commitMessage, this.cache, this.verbose); } catch (IOException e) { System.err.println("Failed to commit."); e.printStackTrace(); diff --git a/mch/src/main/java/ca/bkaw/mch/operation/CommitOperation.java b/mch/src/main/java/ca/bkaw/mch/operation/CommitOperation.java index e3bebe8..c7a33d8 100644 --- a/mch/src/main/java/ca/bkaw/mch/operation/CommitOperation.java +++ b/mch/src/main/java/ca/bkaw/mch/operation/CommitOperation.java @@ -31,7 +31,7 @@ * Utility class for performing a commit. */ public class CommitOperation { - public static void run(MchRepository repository, String commitMessage, boolean cache) throws IOException { + public static void run(MchRepository repository, String commitMessage, boolean cache, boolean verbose) throws IOException { long start = System.currentTimeMillis(); // Read configuration and current commit from repository @@ -86,12 +86,16 @@ public static void run(MchRepository repository, String commitMessage, boolean c // Store region files int unmodifiedRegionFiles = 0; + int emptyRegionFiles = 0; for (RegionFileInfo regionFileInfo : worldProvider.getRegionFiles(dimensionKey)) { if (regionFileInfo.fileSize() == 0) { // I am not sure how or why these empty region files are created, but since they // are 0 bytes they do not contain valid data. Skip them to avoid crashing. - System.out.println(" Skipping empty file (0 bytes): " + regionFileInfo.fileName()); + if (verbose) { + System.out.println(" Skipping empty file (0 bytes): " + regionFileInfo.fileName()); + } + emptyRegionFiles++; continue; } @@ -105,6 +109,9 @@ public static void run(MchRepository repository, String commitMessage, boolean c // changed. // We can simply reference the same version number that the previous commit has. dimension.addRegionFile(currentRegionFileInfo); + if (verbose) { + System.out.println(" Not modified: " + regionFileInfo.fileName()); + } unmodifiedRegionFiles++; continue; } @@ -194,6 +201,10 @@ public static void run(MchRepository repository, String commitMessage, boolean c dimension.addRegionFile(regionFileReference); } + System.out.println(" " + emptyRegionFiles + + (emptyRegionFiles == 1 ? " region file" : " region files") + + " were empty (0 bytes)"); + System.out.println(" " + unmodifiedRegionFiles + (unmodifiedRegionFiles == 1 ? " region file" : " region files") + " were not modified");