From c7718db419b2c3e9f8340f16d585a60b1a868576 Mon Sep 17 00:00:00 2001 From: akwizgran <michael@briarproject.org> Date: Wed, 18 Apr 2018 17:01:02 +0100 Subject: [PATCH] Skip second verification if first succeeds. --- bramble-android/build.gradle | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/bramble-android/build.gradle b/bramble-android/build.gradle index 284ba173a8..917db0b39f 100644 --- a/bramble-android/build.gradle +++ b/bramble-android/build.gradle @@ -69,22 +69,23 @@ def torBinaries = [ "geoip" : '8239b98374493529a29096e45fc5877d4d6fdad0146ad8380b291f90d61484ea' ] -def verifyOrDeleteBinary(name, chksum) { +def verifyOrDeleteBinary(name, chksum, alreadyVerified) { return tasks.create("verifyOrDeleteBinary${name}", VerifyOrDelete) { src "${torBinaryDir}/${name}.zip" algorithm 'SHA-256' checksum chksum + result alreadyVerified onlyIf { src.exists() } } } -def downloadBinary(name, chksum) { +def downloadBinary(name, chksum, alreadyVerified) { return tasks.create([ name: "downloadBinary${name}", type: Download, - dependsOn: verifyOrDeleteBinary(name, chksum)]) { + dependsOn: verifyOrDeleteBinary(name, chksum, alreadyVerified)]) { src "${torDownloadUrl}${name}.zip" .replace('tor_', "tor-${torVersion}-") .replace('geoip', "geoip-${geoipVersion}") @@ -97,13 +98,17 @@ def downloadBinary(name, chksum) { } def verifyBinary(name, chksum) { + boolean[] alreadyVerified = [false] return tasks.create([ name : "verifyBinary${name}", type : Verify, - dependsOn: downloadBinary(name, chksum)]) { + dependsOn: downloadBinary(name, chksum, alreadyVerified)]) { src "${torBinaryDir}/${name}.zip" algorithm 'SHA-256' checksum chksum + onlyIf { + !alreadyVerified[0] + } } } @@ -115,11 +120,14 @@ project.afterEvaluate { class VerifyOrDelete extends Verify { + boolean[] result + @TaskAction @Override void verify() throws IOException, NoSuchAlgorithmException { try { super.verify() + result[0] = true } catch (Exception e) { println "${src} failed verification - deleting" src.delete() -- GitLab