Bring back improved archive composition.

This reverts commit dc95e2dbaa.
This commit is contained in:
Marco Vermeulen
2021-10-08 13:23:36 +01:00
parent 755cba0a07
commit b02a937d8a
3 changed files with 57 additions and 80 deletions

View File

@@ -1,7 +1,3 @@
import org.apache.tools.ant.filters.ReplaceTokens
import static org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL
plugins {
id('groovy')
}
@@ -31,6 +27,8 @@ println("Release set to: $release")
println("Candidtes API: $candidatesApi")
println("Version: $sdkmanVersion")
apply from: 'gradle/archive.gradle'
repositories {
mavenCentral()
}
@@ -52,72 +50,3 @@ dependencies {
exclude module: 'groovy-all'
}
}
task prepareScripts(type: Copy) {
from('src/main/bash')
into('build/scripts')
include('**/*')
filter(
ReplaceTokens,
tokens: [
SDKMAN_VERSION : sdkmanVersion,
SDKMAN_CANDIDATES_API: candidatesApi
]
)
}
task prepareContrib(type: Copy) {
from('contrib')
into('build/contrib')
}
tasks.test.configure {
dependsOn(prepareScripts)
testLogging.exceptionFormat = FULL
}
task assembleArchive(type: Zip, dependsOn: [prepareScripts, prepareContrib]) {
archiveVersion = sdkmanVersion
from('build/scripts') {
include('*.sh*')
}
from('build') {
include('contrib/**')
}
}
tasks.assemble.configure {
dependsOn(assembleArchive)
}
task cleanInstallInit(type: Delete) {
delete(installBinDir)
}
task cleanContribInit(type: Delete) {
delete(installContribDir)
}
task cleanInstallModules(type: Delete) {
delete(installSrcDir)
}
task installContrib(type: Copy, dependsOn: [cleanContribInit, prepareContrib]) {
from('build/contrib')
into(installContribDir)
}
task installInit(type: Copy, dependsOn: [cleanInstallInit, prepareScripts]) {
from('build/scripts')
into(installBinDir)
include('sdkman-init.sh')
}
task installModules(type: Copy, dependsOn: [cleanInstallModules, prepareScripts]) {
from('build/scripts')
into(installSrcDir)
include('sdkman-*.sh')
exclude('sdkman-init.sh')
}
task install(dependsOn: [installInit, installContrib, installModules])

49
gradle/archive.gradle Normal file
View File

@@ -0,0 +1,49 @@
import org.apache.tools.ant.filters.ReplaceTokens
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
def baseDir = "$buildDir/stage/sdkman-$release"
task prepareBin(type: Copy) {
from('src/main/bash')
into("$baseDir/bin")
include('**/sdkman-init.sh')
}
task prepareScripts(type: Copy) {
from('src/main/bash')
into("$baseDir/src")
include('**/*')
exclude('**/sdkman-init.sh')
filter(
ReplaceTokens,
tokens: [
SDKMAN_VERSION : sdkmanVersion,
SDKMAN_CANDIDATES_API: candidatesApi
]
)
}
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)
}

View File

@@ -7,7 +7,9 @@ import sdkman.stubs.UnameStub
@ToString(includeNames = true)
class SdkmanBashEnvBuilder {
final TEST_SCRIPT_BUILD_DIR = "build/scripts" as File
final BUILD_STAGE_DIR = "build/stage/sdkman-latest"
final BUILD_BIN_DIR = "$BUILD_STAGE_DIR/bin"
final BUILD_SRC_DIR = "$BUILD_STAGE_DIR/src"
//mandatory fields
private final File baseFolder
@@ -139,10 +141,7 @@ class SdkmanBashEnvBuilder {
env.put("http_proxy", httpProxy)
}
def bashEnv = new BashEnv(baseFolder.absolutePath, env)
println("\nSdkmanBashEnvBuilder: $this")
println("\nBashEnv: $bashEnv")
bashEnv
new BashEnv(baseFolder.absolutePath, env)
}
private prepareDirectory(File target, String directoryName) {
@@ -185,7 +184,7 @@ class SdkmanBashEnvBuilder {
}
private primeInitScript(File targetFolder) {
def sourceInitScript = new File(TEST_SCRIPT_BUILD_DIR, 'sdkman-init.sh')
def sourceInitScript = new File(BUILD_BIN_DIR, 'sdkman-init.sh')
if (!sourceInitScript.exists())
throw new IllegalStateException("sdkman-init.sh has not been prepared for consumption.")
@@ -196,7 +195,7 @@ class SdkmanBashEnvBuilder {
}
private primeModuleScripts(File targetFolder) {
for (f in TEST_SCRIPT_BUILD_DIR.listFiles()) {
for (f in new File(BUILD_SRC_DIR).listFiles()) {
if (!(f.name in ['selfupdate.sh', 'install.sh', 'sdkman-init.sh'])) {
new File(targetFolder, f.name) << f.text
}