From e11dd7cc93a882c7551bc1371d10ea7bdd873a02 Mon Sep 17 00:00:00 2001 From: Michel Kraemer Date: Sun, 16 Jan 2022 10:27:04 +0100 Subject: [PATCH] Display destination file name in progress message Refers to #138 --- .../gradle/tasks/download/DownloadAction.java | 4 ++- .../internal/ProgressLoggerWrapper.java | 27 ++++++++++++++----- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/undercouch/gradle/tasks/download/DownloadAction.java b/src/main/java/de/undercouch/gradle/tasks/download/DownloadAction.java index c3e67da5..de647b74 100644 --- a/src/main/java/de/undercouch/gradle/tasks/download/DownloadAction.java +++ b/src/main/java/de/undercouch/gradle/tasks/download/DownloadAction.java @@ -260,7 +260,9 @@ private void execute(URL src, HttpClientFactory clientFactory, upToDate.incrementAndGet(); return; } - + + progressLogger.setDestFileName(destFile.getName()); + // in case offline mode is enabled don't try to download if // destination already exists if (isOffline) { diff --git a/src/main/java/de/undercouch/gradle/tasks/download/internal/ProgressLoggerWrapper.java b/src/main/java/de/undercouch/gradle/tasks/download/internal/ProgressLoggerWrapper.java index 5c68d835..53f0753e 100644 --- a/src/main/java/de/undercouch/gradle/tasks/download/internal/ProgressLoggerWrapper.java +++ b/src/main/java/de/undercouch/gradle/tasks/download/internal/ProgressLoggerWrapper.java @@ -14,12 +14,12 @@ package de.undercouch.gradle.tasks.download.internal; +import org.gradle.api.logging.Logger; + import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Arrays; -import org.gradle.api.logging.Logger; - /** * Wraps around Gradle's internal progress logger. Uses reflection * to provide as much compatibility to different Gradle versions @@ -32,6 +32,7 @@ public class ProgressLoggerWrapper { private Object progressLogger; private String size; + private String destFileName; private long processedBytes = 0; private long loggedKb = 0; @@ -186,6 +187,14 @@ public void setSize(long size) { loggedKb = 0; } + /** + * Set the name of the destination file + * @param destFileName the file name + */ + public void setDestFileName(String destFileName) { + this.destFileName = destFileName; + } + /** * Increment the number of bytes processed * @param increment the increment @@ -199,12 +208,18 @@ public void incrementProgress(long increment) { long processedKb = processedBytes / 1024; if (processedKb > loggedKb) { - String msg = toLengthText(processedBytes); + StringBuilder sb = new StringBuilder(); + if (destFileName != null) { + sb.append(destFileName); + sb.append(" > "); + } + sb.append(toLengthText(processedBytes)); if (size != null) { - msg += "/" + size; + sb.append("/"); + sb.append(size); } - msg += " downloaded"; - progress(msg); + sb.append(" downloaded"); + progress(sb.toString()); loggedKb = processedKb; } }