mirror of
https://github.com/sdkman/sdkman-cli.git
synced 2026-05-18 21:45:39 -04:00
Defer version cache check to command invocation.
This commit is contained in:
@@ -98,33 +98,6 @@ fi
|
||||
if [[ -z "$sdkman_curl_connect_timeout" ]]; then sdkman_curl_connect_timeout=7; fi
|
||||
if [[ -z "$sdkman_curl_max_time" ]]; then sdkman_curl_max_time=10; fi
|
||||
|
||||
# determine if up to date
|
||||
SDKMAN_VERSION_FILE="${SDKMAN_DIR}/var/version"
|
||||
if [[ "$sdkman_beta_channel" != "true" && -f "$SDKMAN_VERSION_FILE" && -z "$(find "$SDKMAN_VERSION_FILE" -mmin +$((60*24)))" ]]; then
|
||||
__sdkman_echo_debug "Not refreshing version cache now..."
|
||||
SDKMAN_REMOTE_VERSION=$(cat "$SDKMAN_VERSION_FILE")
|
||||
|
||||
else
|
||||
__sdkman_echo_debug "Version cache needs updating..."
|
||||
if [[ "$sdkman_beta_channel" == "true" ]]; then
|
||||
__sdkman_echo_debug "Refreshing version cache with BETA version."
|
||||
VERSION_URL="${SDKMAN_CURRENT_API}/broker/download/sdkman/version/beta"
|
||||
else
|
||||
__sdkman_echo_debug "Refreshing version cache with STABLE version."
|
||||
VERSION_URL="${SDKMAN_CURRENT_API}/broker/download/sdkman/version/stable"
|
||||
fi
|
||||
|
||||
SDKMAN_REMOTE_VERSION=$(__sdkman_secure_curl_with_timeouts "$VERSION_URL")
|
||||
if [[ -z "$SDKMAN_REMOTE_VERSION" || -n "$(echo "$SDKMAN_REMOTE_VERSION" | tr '[:upper:]' '[:lower:]' | grep 'html')" ]]; then
|
||||
__sdkman_echo_debug "Version information corrupt or empty! Ignoring: $SDKMAN_REMOTE_VERSION"
|
||||
SDKMAN_REMOTE_VERSION="$SDKMAN_VERSION"
|
||||
|
||||
else
|
||||
__sdkman_echo_debug "Overwriting version cache with: $SDKMAN_REMOTE_VERSION"
|
||||
echo "${SDKMAN_REMOTE_VERSION}" > "$SDKMAN_VERSION_FILE"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Read list of candidates and set array
|
||||
SDKMAN_CANDIDATES_CACHE="${SDKMAN_DIR}/var/candidates"
|
||||
SDKMAN_CANDIDATES_CSV=$(cat "$SDKMAN_CANDIDATES_CACHE")
|
||||
|
||||
@@ -57,6 +57,34 @@ function sdk {
|
||||
# Check candidates cache
|
||||
if [[ "$COMMAND" != "update" ]]; then
|
||||
___sdkman_check_candidates_cache "$SDKMAN_CANDIDATES_CACHE" || return 1
|
||||
|
||||
# determine if up to date
|
||||
SDKMAN_VERSION_FILE="${SDKMAN_DIR}/var/version"
|
||||
if [[ "$sdkman_beta_channel" != "true" && -f "$SDKMAN_VERSION_FILE" && -z "$(find "$SDKMAN_VERSION_FILE" -mmin +$((60*24)))" ]]; then
|
||||
__sdkman_echo_debug "Not refreshing version cache now..."
|
||||
SDKMAN_REMOTE_VERSION=$(cat "$SDKMAN_VERSION_FILE")
|
||||
|
||||
else
|
||||
__sdkman_echo_debug "Version cache needs updating..."
|
||||
if [[ "$sdkman_beta_channel" == "true" ]]; then
|
||||
__sdkman_echo_debug "Refreshing version cache with BETA version."
|
||||
VERSION_URL="${SDKMAN_CURRENT_API}/broker/download/sdkman/version/beta"
|
||||
else
|
||||
__sdkman_echo_debug "Refreshing version cache with STABLE version."
|
||||
VERSION_URL="${SDKMAN_CURRENT_API}/broker/download/sdkman/version/stable"
|
||||
fi
|
||||
|
||||
SDKMAN_REMOTE_VERSION=$(__sdkman_secure_curl_with_timeouts "$VERSION_URL")
|
||||
if [[ -z "$SDKMAN_REMOTE_VERSION" || -n "$(echo "$SDKMAN_REMOTE_VERSION" | tr '[:upper:]' '[:lower:]' | grep 'html')" ]]; then
|
||||
__sdkman_echo_debug "Version information corrupt or empty! Ignoring: $SDKMAN_REMOTE_VERSION"
|
||||
SDKMAN_REMOTE_VERSION="$SDKMAN_VERSION"
|
||||
|
||||
else
|
||||
__sdkman_echo_debug "Overwriting version cache with: $SDKMAN_REMOTE_VERSION"
|
||||
echo "${SDKMAN_REMOTE_VERSION}" > "$SDKMAN_VERSION_FILE"
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# Always presume internet availability
|
||||
|
||||
@@ -31,6 +31,7 @@ class BetaChannelBootstrapSpec extends SdkmanEnvSpecification {
|
||||
|
||||
when:
|
||||
bash.execute("source $bootstrapScript")
|
||||
bash.execute("sdk version")
|
||||
|
||||
then:
|
||||
versionCache.exists()
|
||||
@@ -53,6 +54,8 @@ class BetaChannelBootstrapSpec extends SdkmanEnvSpecification {
|
||||
|
||||
when:
|
||||
bash.execute("source $bootstrapScript")
|
||||
bash.execute("sdk version")
|
||||
|
||||
|
||||
then:
|
||||
versionCache.exists()
|
||||
@@ -74,6 +77,7 @@ class BetaChannelBootstrapSpec extends SdkmanEnvSpecification {
|
||||
|
||||
when:
|
||||
bash.execute("source $bootstrapScript")
|
||||
bash.execute("sdk version")
|
||||
|
||||
then:
|
||||
versionCache.exists()
|
||||
@@ -96,6 +100,7 @@ class BetaChannelBootstrapSpec extends SdkmanEnvSpecification {
|
||||
|
||||
when:
|
||||
bash.execute("source $bootstrapScript")
|
||||
bash.execute("sdk version")
|
||||
|
||||
then:
|
||||
versionCache.exists()
|
||||
|
||||
@@ -32,6 +32,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
|
||||
|
||||
when:
|
||||
bash.execute("source $bootstrapScript")
|
||||
bash.execute("sdk version")
|
||||
|
||||
then:
|
||||
versionCache.exists()
|
||||
@@ -50,6 +51,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
|
||||
|
||||
when:
|
||||
bash.execute("source $bootstrapScript")
|
||||
bash.execute("sdk version")
|
||||
|
||||
then:
|
||||
versionCache.exists()
|
||||
@@ -72,6 +74,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
|
||||
|
||||
when:
|
||||
bash.execute("source $bootstrapScript")
|
||||
bash.execute("sdk version")
|
||||
|
||||
then:
|
||||
versionCache.exists()
|
||||
@@ -94,6 +97,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
|
||||
|
||||
when:
|
||||
bash.execute("source $bootstrapScript")
|
||||
bash.execute("sdk version")
|
||||
|
||||
then:
|
||||
versionCache.text.contains("x.y.z")
|
||||
@@ -115,6 +119,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
|
||||
|
||||
when:
|
||||
bash.execute("source $bootstrapScript")
|
||||
bash.execute("sdk version")
|
||||
|
||||
then:
|
||||
!bash.output.contains("SDKMAN can't reach the internet so going offline.")
|
||||
@@ -137,6 +142,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
|
||||
|
||||
when:
|
||||
bash.execute("source $bootstrapScript")
|
||||
bash.execute("sdk version")
|
||||
|
||||
then:
|
||||
versionCache.text.contains(sdkmanVersion)
|
||||
@@ -156,6 +162,7 @@ class VersionCacheBootstrapSpec extends SdkmanEnvSpecification {
|
||||
|
||||
when:
|
||||
bash.execute("source $bootstrapScript")
|
||||
bash.execute("sdk version")
|
||||
|
||||
then:
|
||||
versionCache.exists()
|
||||
|
||||
Reference in New Issue
Block a user