aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Janak Ramakrishnan <janakr@google.com>2015-07-28 22:07:17 +0000
committerGravatar Lukacs Berki <lberki@google.com>2015-07-29 16:01:33 +0000
commit205a3d67fe5986890270ad99c87ded997a1d5cca (patch)
tree3a94f62cf0276900467a3fa55ad9b2e8746227c9 /src/main/java/com/google/devtools
parent6ddbb6e48bf1fb389634934dcce1e251a77e50e5 (diff)
Download from remote http repository only if zip file with correct hash doesn't already exist.
This addresses #251, but similar functionality needs to be implemented for all flavors of remote repository. -- MOS_MIGRATED_REVID=99319885
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloader.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloader.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloader.java
index 9dd29aeba5..56f7d33bcc 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloader.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloader.java
@@ -73,6 +73,15 @@ public class HttpDownloader {
}
Path destination = outputDirectory.getRelative(filename);
+ try {
+ String currentSha256 = getHash(Hashing.sha256().newHasher(), destination);
+ if (currentSha256.equals(sha256)) {
+ // No need to download.
+ return destination;
+ }
+ } catch (IOException e) {
+ // Ignore error trying to hash. We'll just download again.
+ }
int currentBytes;
final AtomicInteger totalBytes = new AtomicInteger(0);
final ScheduledFuture<?> loggerHandle = getLoggerHandle(totalBytes);