From 20cba8a8d8e5d4d5e754d9e8e8d49290e8c59ff6 Mon Sep 17 00:00:00 2001 From: Ben Liblit Date: Wed, 17 Jan 2018 21:36:53 -0600 Subject: [PATCH] Factor out recurring pattern of MD5 checksum + stamp file --- .gitignore | 2 +- build.gradle | 2 +- buildSrc/build.gradle | 7 +++++++ buildSrc/src/main/groovy/stamp.groovy | 12 ++++++++++++ com.ibm.wala.cast.java.test.data/build.gradle | 6 +----- com.ibm.wala.cast.js.test.data/build.gradle | 6 +----- com.ibm.wala.core.testdata/build.gradle | 18 +++--------------- 7 files changed, 26 insertions(+), 27 deletions(-) create mode 100644 buildSrc/build.gradle create mode 100644 buildSrc/src/main/groovy/stamp.groovy diff --git a/.gitignore b/.gitignore index d7b017bc8..19c318854 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +**/.gradle/ *.DS_Store *.class *.out @@ -10,7 +11,6 @@ .metadata/ .project /*/.settings/org.eclipse.buildship.core.prefs -/.gradle/ /.settings/org.eclipse.buildship.core.prefs /build/ com.ibm.wala.cast.java.jdt.test/ diff --git a/build.gradle b/build.gradle index 84acdf948..06f4acf61 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { id 'com.github.hauner.jarTest' version '1.0.1' apply false - id 'de.undercouch.download' version '3.3.0' apply false + id 'de.undercouch.download' apply false id 'nebula.lint' version '8.3.1' } diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle new file mode 100644 index 000000000..77cd72bc3 --- /dev/null +++ b/buildSrc/build.gradle @@ -0,0 +1,7 @@ +repositories { + mavenCentral() +} + +dependencies { + compile 'de.undercouch:gradle-download-task:3.3.0' +} diff --git a/buildSrc/src/main/groovy/stamp.groovy b/buildSrc/src/main/groovy/stamp.groovy new file mode 100644 index 000000000..5d2142265 --- /dev/null +++ b/buildSrc/src/main/groovy/stamp.groovy @@ -0,0 +1,12 @@ +//////////////////////////////////////////////////////////////////////// +// +// helper task for checksum-verified downloads +// + +class VerifyWithStamp extends de.undercouch.gradle.tasks.download.Verify { + VerifyWithStamp() { + def stamp = new File(temporaryDir, 'stamp') + outputs.file stamp + doLast { stamp.text = '' } + } +} diff --git a/com.ibm.wala.cast.java.test.data/build.gradle b/com.ibm.wala.cast.java.test.data/build.gradle index b3c2d8a63..64733ec41 100644 --- a/com.ibm.wala.cast.java.test.data/build.gradle +++ b/com.ibm.wala.cast.java.test.data/build.gradle @@ -17,13 +17,9 @@ task downloadJLex(type: Download) { overwrite false } -task verifyJLex(type: Verify, dependsOn: downloadJLex) { - // TODO: refactor this logic into a reusable custom task class +task verifyJLex(type: VerifyWithStamp, dependsOn: downloadJLex) { src downloadJLex.dest checksum 'fe0cff5db3e2f0f5d67a153cf6c783af' - def stamp = new File(temporaryDir, 'stamp') - outputs.file stamp - doLast { stamp.text = '' } } clean { diff --git a/com.ibm.wala.cast.js.test.data/build.gradle b/com.ibm.wala.cast.js.test.data/build.gradle index 4207a5ea8..45916daad 100644 --- a/com.ibm.wala.cast.js.test.data/build.gradle +++ b/com.ibm.wala.cast.js.test.data/build.gradle @@ -12,13 +12,9 @@ task downloadAjaxslt(type: Download) { overwrite false } -task verifyAjaxslt(type: Verify, dependsOn: downloadAjaxslt) { - // TODO: refactor this logic into a reusable custom task class +task verifyAjaxslt(type: VerifyWithStamp, dependsOn: downloadAjaxslt) { src files(downloadAjaxslt)[0] checksum 'c995abe3310a401bb4db7f28a6409756' - def stamp = new File(temporaryDir, 'stamp') - outputs.file stamp - doLast { stamp.text = '' } } task unpackAjaxslt(type: Sync, dependsOn: verifyAjaxslt) { diff --git a/com.ibm.wala.core.testdata/build.gradle b/com.ibm.wala.core.testdata/build.gradle index 0723a744e..caa5e8e6f 100644 --- a/com.ibm.wala.core.testdata/build.gradle +++ b/com.ibm.wala.core.testdata/build.gradle @@ -27,13 +27,9 @@ task downloadBcel(type: Download) { overwrite false } -task verifyBcel(type: Verify, dependsOn: downloadBcel) { - // TODO: refactor this logic into a reusable custom task class +task verifyBcel(type: VerifyWithStamp, dependsOn: downloadBcel) { src files(downloadBcel)[0] checksum '19bffd7f217b0eae415f1ef87af2f0bc' - def stamp = new File(temporaryDir, 'stamp') - outputs.file stamp - doLast { stamp.text = '' } } task extractBcel(type: Sync, dependsOn: verifyBcel) { @@ -63,13 +59,9 @@ task downloadJavaCup(type: Download) { clean { delete downloadJavaCup } } -task verifyJavaCup(type: Verify, dependsOn: downloadJavaCup) { - // TODO: refactor this logic into a reusable custom task class +task verifyJavaCup(type: VerifyWithStamp, dependsOn: downloadJavaCup) { src files(downloadJavaCup)[0] checksum '2bda8c40abd0cbc295d3038643d6e4ec' - def stamp = new File(temporaryDir, 'stamp') - outputs.file stamp - doLast { stamp.text = '' } } extraBundledJars.dependsOn verifyJavaCup @@ -106,13 +98,9 @@ task downloadOcamlJava(type: Download) { overwrite false } -task verifyOcamlJava(type: Verify, dependsOn: downloadOcamlJava) { - // TODO: refactor this logic into a reusable custom task class +task verifyOcamlJava(type: VerifyWithStamp, dependsOn: downloadOcamlJava) { src downloadOcamlJava.outputFiles[0] checksum '45feec6e3889f5073a39c2c4c84878d1' - def stamp = new File(temporaryDir, 'stamp') - outputs.file stamp - doLast { stamp.text = '' } } task unpackOcamlJava(type: Sync, dependsOn: verifyOcamlJava) {