Introduce native version to SdkmanBashEnvBuilder

This commit is contained in:
Marco Vermeulen
2022-12-29 18:59:02 +00:00
parent a2bee44bc1
commit 9e81419f21
9 changed files with 46 additions and 34 deletions

View File

@@ -25,7 +25,8 @@ class SdkmanBashEnvBuilder {
private String sdkmanVersion = "5.0.0"
private String jdkHome = "/path/to/my/jdk"
private String httpProxy
private String versionCache
private String scriptVersionCache
private String nativeVersionCache
private boolean debugMode = true
Map config = [
@@ -90,8 +91,13 @@ class SdkmanBashEnvBuilder {
this
}
SdkmanBashEnvBuilder withVersionCache(String version) {
this.versionCache = version
SdkmanBashEnvBuilder withScriptVersionCache(String version) {
this.scriptVersionCache = version
this
}
SdkmanBashEnvBuilder withNativeVersionCache(String version) {
this.nativeVersionCache = version
this
}
@@ -124,7 +130,8 @@ class SdkmanBashEnvBuilder {
initializeCandidatesCache(sdkmanVarDir, candidates)
initializeBroadcast(sdkmanVarDir, broadcast)
initializeConfiguration(sdkmanEtcDir, config)
initializeVersionCache(sdkmanVarDir, versionCache)
initializeScriptVersionCache(sdkmanVarDir, scriptVersionCache)
initializeNativeVersionCache(sdkmanVarDir, nativeVersionCache)
primeInitScript(sdkmanBinDir)
primeModuleScripts(sdkmanSrcDir)
@@ -153,13 +160,18 @@ class SdkmanBashEnvBuilder {
directory
}
private initializeVersionCache(File folder, String version) {
private initializeScriptVersionCache(File folder, String version) {
if (version) {
new File(folder, "version") << version
}
}
private initializeNativeVersionCache(File folder, String version) {
if (version) {
new File(folder, "version_native") << version
}
}
private initializeCandidates(File folder, List candidates) {
candidates.each { candidate ->
new File(folder, candidate).mkdirs()

View File

@@ -22,7 +22,7 @@ class BetaChannelBootstrapSpec extends SdkmanEnvSpecification {
curlStub.primeWith(CLI_BETA_ENDPOINT, "echo $betaVersion")
bash = sdkmanBashEnvBuilder
.withConfiguration("sdkman_beta_channel", "true")
.withVersionCache("x.y.b")
.withScriptVersionCache("x.y.b")
.build()
and:
@@ -43,7 +43,7 @@ class BetaChannelBootstrapSpec extends SdkmanEnvSpecification {
curlStub.primeWith(CLI_STABLE_ENDPOINT, "echo $stableVersion")
bash = sdkmanBashEnvBuilder
.withConfiguration("sdkman_beta_channel", "false")
.withVersionCache("x.y.c")
.withScriptVersionCache("x.y.c")
.build()
versionCache.setLastModified(TWO_DAYS_AGO)
@@ -65,7 +65,7 @@ class BetaChannelBootstrapSpec extends SdkmanEnvSpecification {
curlStub.primeWith(CLI_BETA_ENDPOINT, "echo $newerBetaVersion")
bash = sdkmanBashEnvBuilder
.withConfiguration("sdkman_beta_channel", "true")
.withVersionCache("x.y.c")
.withScriptVersionCache("x.y.c")
.build()
and:
@@ -86,7 +86,7 @@ class BetaChannelBootstrapSpec extends SdkmanEnvSpecification {
curlStub.primeWith(CLI_STABLE_ENDPOINT, "echo $newerStableVersion")
bash = sdkmanBashEnvBuilder
.withConfiguration("sdkman_beta_channel", "false")
.withVersionCache("x.y.c")
.withScriptVersionCache("x.y.c")
.build()
versionCache.setLastModified(TWO_DAYS_AGO)

View File

@@ -6,7 +6,7 @@ class ConfigCommandSpec extends SdkmanEnvSpecification {
def "it should open the config in the system's default editor"() {
given:
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.withOfflineMode(true)
.build()

View File

@@ -41,7 +41,7 @@ class CurrentCommandSpec extends SdkmanEnvSpecification {
bash = sdkmanBashEnvBuilder
.withOfflineMode(false)
.withVersionCache("5.0.0")
.withScriptVersionCache("5.0.0")
.withCandidates(installedCandidates.keySet().toList())
.build()

View File

@@ -21,7 +21,7 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
bash = sdkmanBashEnvBuilder
.withOfflineMode(true)
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.build()
bash.start()
@@ -63,7 +63,7 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
}
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.withOfflineMode(true)
.build()
@@ -100,7 +100,7 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
}
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.withOfflineMode(true)
.withConfiguration("sdkman_auto_env", sdkmanAutoEnv)
.build()
@@ -135,7 +135,7 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
}
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.withOfflineMode(true)
.withConfiguration("sdkman_auto_env", "true")
.build()
@@ -166,7 +166,7 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
}
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.withOfflineMode(true)
.withConfiguration("sdkman_auto_env", "true")
.build()
@@ -193,7 +193,7 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
}
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.withOfflineMode(true)
.withConfiguration("sdkman_auto_env", "true")
.build()
@@ -227,7 +227,7 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
createSymbolicLink(Paths.get("$candidatesDirectory/groovy/current"), Paths.get("$candidatesDirectory/groovy/2.4.6"))
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.withOfflineMode(true)
.withConfiguration("sdkman_auto_env", "true")
.build()
@@ -266,7 +266,7 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
createSymbolicLink(Paths.get("$candidatesDirectory/ant/current"), Paths.get("$candidatesDirectory/ant/1.10.8"))
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.withOfflineMode(true)
.withConfiguration("sdkman_auto_env", "true")
.build()
@@ -314,7 +314,7 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
}
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.withOfflineMode(true)
.withConfiguration("sdkman_auto_env", "true")
.build()
@@ -340,7 +340,7 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
def "should issue an error if .sdkmanrc contains a malformed candidate version"() {
given:
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.withOfflineMode(true)
.build()
@@ -368,7 +368,7 @@ class EnvCommandSpec extends SdkmanEnvSpecification {
}
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.withOfflineMode(true)
.build()

View File

@@ -15,7 +15,7 @@ class InitialisationSpec extends SdkmanEnvSpecification {
def setup() {
bash = sdkmanBashEnvBuilder
.withCandidates(allCandidates)
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.build()
prepareCandidateDirectories(allCandidates)
}

View File

@@ -12,7 +12,7 @@ class SdkCompatibilitySpec extends SdkmanEnvSpecification {
def setup() {
bash = sdkmanBashEnvBuilder
.withCandidates(allCandidates)
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.build()
}

View File

@@ -41,7 +41,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
given:
curlStub.primeWith(CLI_VERSION_STABLE_ENDPOINT, "sleep 50") //will timeout and fail if called
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.build()
and:
@@ -60,7 +60,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
given:
curlStub.primeWith(CLI_VERSION_STABLE_ENDPOINT, "echo x.y.b")
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.a")
.withScriptVersionCache("x.y.a")
.build()
and:
@@ -82,7 +82,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
given:
curlStub.primeWith(CLI_VERSION_STABLE_ENDPOINT, "echo ''")
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.build()
and:
@@ -103,7 +103,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
given:
curlStub.primeWith(CLI_VERSION_STABLE_ENDPOINT, "echo ''")
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.z")
.withScriptVersionCache("x.y.z")
.build()
and:
@@ -125,7 +125,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
def sdkmanVersion = "x.y.z"
curlStub.primeWith(CLI_VERSION_STABLE_ENDPOINT, "echo '<html><title>sorry</title></html>'")
bash = sdkmanBashEnvBuilder
.withVersionCache(sdkmanVersion)
.withScriptVersionCache(sdkmanVersion)
.build()
and:
@@ -146,7 +146,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
given:
curlStub.primeWith(CLI_VERSION_BETA_ENDPOINT, "echo x.y.z")
bash = sdkmanBashEnvBuilder
.withVersionCache("x.y.w")
.withScriptVersionCache("x.y.w")
.withConfiguration("sdkman_beta_channel", "true")
.build()

View File

@@ -91,7 +91,7 @@ And(~'^an initialised environment$') { ->
.withCandidatesApi(serviceUrlEnv)
.withJdkHome(javaHome)
.withHttpProxy(HTTP_PROXY)
.withVersionCache(sdkmanVersion)
.withScriptVersionCache(sdkmanVersion)
.withCandidates(localCandidates)
.withSdkmanVersion(sdkmanVersion)
.build()
@@ -103,7 +103,7 @@ And(~'^an initialised environment without debug prints$') { ->
.withCandidatesApi(serviceUrlEnv)
.withJdkHome(javaHome)
.withHttpProxy(HTTP_PROXY)
.withVersionCache(sdkmanVersion)
.withScriptVersionCache(sdkmanVersion)
.withCandidates(localCandidates)
.withSdkmanVersion(sdkmanVersion)
.withDebugMode(false)
@@ -116,7 +116,7 @@ And(~'^an outdated initialised environment$') { ->
.withCandidatesApi(serviceUrlEnv)
.withJdkHome(javaHome)
.withHttpProxy(HTTP_PROXY)
.withVersionCache(sdkmanVersionOutdated)
.withScriptVersionCache(sdkmanVersionOutdated)
.withSdkmanVersion(sdkmanVersionOutdated)
.build()