Factor out recurring pattern of MD5 checksum + stamp file

This commit is contained in:
Ben Liblit 2018-01-17 21:36:53 -06:00
parent 2c1bc5c52c
commit 60870d7231
7 changed files with 26 additions and 27 deletions

2
.gitignore vendored
View File

@ -1,3 +1,4 @@
**/.gradle/
*.DS_Store *.DS_Store
*.class *.class
*.out *.out
@ -10,7 +11,6 @@
.metadata/ .metadata/
.project .project
/*/.settings/org.eclipse.buildship.core.prefs /*/.settings/org.eclipse.buildship.core.prefs
/.gradle/
/.settings/org.eclipse.buildship.core.prefs /.settings/org.eclipse.buildship.core.prefs
/build/ /build/
com.ibm.wala.cast.java.jdt.test/ com.ibm.wala.cast.java.jdt.test/

View File

@ -5,7 +5,7 @@
plugins { plugins {
id 'com.github.hauner.jarTest' version '1.0.1' apply false 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' id 'nebula.lint' version '8.3.1'
} }

7
buildSrc/build.gradle Normal file
View File

@ -0,0 +1,7 @@
repositories {
mavenCentral()
}
dependencies {
compile 'de.undercouch:gradle-download-task:3.3.0'
}

View File

@ -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 = '' }
}
}

View File

@ -17,13 +17,9 @@ task downloadJLex(type: Download) {
overwrite false overwrite false
} }
task verifyJLex(type: Verify, dependsOn: downloadJLex) { task verifyJLex(type: VerifyWithStamp, dependsOn: downloadJLex) {
// TODO: refactor this logic into a reusable custom task class
src downloadJLex.dest src downloadJLex.dest
checksum 'fe0cff5db3e2f0f5d67a153cf6c783af' checksum 'fe0cff5db3e2f0f5d67a153cf6c783af'
def stamp = new File(temporaryDir, 'stamp')
outputs.file stamp
doLast { stamp.text = '' }
} }
clean { clean {

View File

@ -12,13 +12,9 @@ task downloadAjaxslt(type: Download) {
overwrite false overwrite false
} }
task verifyAjaxslt(type: Verify, dependsOn: downloadAjaxslt) { task verifyAjaxslt(type: VerifyWithStamp, dependsOn: downloadAjaxslt) {
// TODO: refactor this logic into a reusable custom task class
src files(downloadAjaxslt)[0] src files(downloadAjaxslt)[0]
checksum 'c995abe3310a401bb4db7f28a6409756' checksum 'c995abe3310a401bb4db7f28a6409756'
def stamp = new File(temporaryDir, 'stamp')
outputs.file stamp
doLast { stamp.text = '' }
} }
task unpackAjaxslt(type: Sync, dependsOn: verifyAjaxslt) { task unpackAjaxslt(type: Sync, dependsOn: verifyAjaxslt) {

View File

@ -27,13 +27,9 @@ task downloadBcel(type: Download) {
overwrite false overwrite false
} }
task verifyBcel(type: Verify, dependsOn: downloadBcel) { task verifyBcel(type: VerifyWithStamp, dependsOn: downloadBcel) {
// TODO: refactor this logic into a reusable custom task class
src files(downloadBcel)[0] src files(downloadBcel)[0]
checksum '19bffd7f217b0eae415f1ef87af2f0bc' checksum '19bffd7f217b0eae415f1ef87af2f0bc'
def stamp = new File(temporaryDir, 'stamp')
outputs.file stamp
doLast { stamp.text = '' }
} }
task extractBcel(type: Sync, dependsOn: verifyBcel) { task extractBcel(type: Sync, dependsOn: verifyBcel) {
@ -63,13 +59,9 @@ task downloadJavaCup(type: Download) {
clean { delete downloadJavaCup } clean { delete downloadJavaCup }
} }
task verifyJavaCup(type: Verify, dependsOn: downloadJavaCup) { task verifyJavaCup(type: VerifyWithStamp, dependsOn: downloadJavaCup) {
// TODO: refactor this logic into a reusable custom task class
src files(downloadJavaCup)[0] src files(downloadJavaCup)[0]
checksum '2bda8c40abd0cbc295d3038643d6e4ec' checksum '2bda8c40abd0cbc295d3038643d6e4ec'
def stamp = new File(temporaryDir, 'stamp')
outputs.file stamp
doLast { stamp.text = '' }
} }
extraBundledJars.dependsOn verifyJavaCup extraBundledJars.dependsOn verifyJavaCup
@ -106,13 +98,9 @@ task downloadOcamlJava(type: Download) {
overwrite false overwrite false
} }
task verifyOcamlJava(type: Verify, dependsOn: downloadOcamlJava) { task verifyOcamlJava(type: VerifyWithStamp, dependsOn: downloadOcamlJava) {
// TODO: refactor this logic into a reusable custom task class
src downloadOcamlJava.outputFiles[0] src downloadOcamlJava.outputFiles[0]
checksum '45feec6e3889f5073a39c2c4c84878d1' checksum '45feec6e3889f5073a39c2c4c84878d1'
def stamp = new File(temporaryDir, 'stamp')
outputs.file stamp
doLast { stamp.text = '' }
} }
task unpackOcamlJava(type: Sync, dependsOn: verifyOcamlJava) { task unpackOcamlJava(type: Sync, dependsOn: verifyOcamlJava) {