mirror of
https://github.com/sdkman/sdkman-cli.git
synced 2026-04-20 15:07:06 -04:00
Introduce native version to SdkmanBashEnvBuilder
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ class SdkCompatibilitySpec extends SdkmanEnvSpecification {
|
||||
def setup() {
|
||||
bash = sdkmanBashEnvBuilder
|
||||
.withCandidates(allCandidates)
|
||||
.withVersionCache("x.y.z")
|
||||
.withScriptVersionCache("x.y.z")
|
||||
.build()
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user