Defer version cache check to command invocation.

This commit is contained in:
Marco Vermeulen
2017-12-21 08:47:47 +00:00
parent 3c3044bda6
commit b7a00f683d
4 changed files with 40 additions and 27 deletions

View File

@@ -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")

View File

@@ -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

View File

@@ -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()

View File

@@ -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()