This reverts sdk refactor of binary archive.

This commit is contained in:
Marco Vermeulen
2021-10-07 22:56:46 +01:00
parent 448d3c00eb
commit dc95e2dbaa
3 changed files with 80 additions and 57 deletions

View File

@@ -1,3 +1,7 @@
import org.apache.tools.ant.filters.ReplaceTokens
import static org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL
plugins {
id('groovy')
}
@@ -20,8 +24,6 @@ println("Release set to: $release")
println("Candidtes API: $candidatesApi")
println("Version: $sdkmanVersion")
apply from: 'gradle/archive.gradle'
repositories {
mavenCentral()
}
@@ -43,3 +45,72 @@ 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])

View File

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