import org.apache.tools.ant.filters.ReplaceTokens import org.gradle.api.tasks.testing.logging.TestExceptionFormat def baseDir = "$buildDir/stage/sdkman-${ext.sdkmanVersion}" task prepareBin(type: Copy) { from('src/main/bash') into("$baseDir/bin") include('**/sdkman-init.sh') filter( ReplaceTokens, tokens: [ SDKMAN_CANDIDATES_API: candidatesApi, SDKMAN_BROKER_API: brokerApi ] ) } task prepareScripts(type: Copy) { from('src/main/bash') into("$baseDir/src") include('**/*') exclude('**/sdkman-init.sh') } task prepareContrib(type: Copy) { from('contrib') into("$baseDir/contrib") } tasks.test.configure { dependsOn(prepareScripts) testLogging.exceptionFormat = TestExceptionFormat.FULL } task assembleArchive(type: Zip, dependsOn: [prepareBin, prepareScripts, prepareContrib]) { archiveVersion = sdkmanVersion from('build/stage') { include('**/*') } } tasks.assemble.configure { dependsOn(assembleArchive) } tasks.test.configure { dependsOn(prepareBin, prepareScripts, prepareContrib) }