mirror of
https://github.com/sdkman/sdkman-cli.git
synced 2026-05-19 14:06:45 -04:00
Implement post hook on download.
This commit is contained in:
@@ -106,18 +106,24 @@ function __sdkman_download {
|
||||
echo ""
|
||||
echo "In progress..."
|
||||
echo ""
|
||||
local download_url="${SDKMAN_CURRENT_API}/broker/download/${candidate}/${version}/$(echo $SDKMAN_PLATFORM | tr '[:upper:]' '[:lower:]')"
|
||||
|
||||
local download_binary="${SDKMAN_DIR}/tmp/$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1).bin"
|
||||
__sdkman_secure_curl_download "$download_url" > "$download_binary"
|
||||
echo ""
|
||||
__sdkman_echo_debug "Downloaded binary to: $download_binary"
|
||||
local platform_parameter="$(echo $SDKMAN_PLATFORM | tr '[:upper:]' '[:lower:]')"
|
||||
local download_url="${SDKMAN_CURRENT_API}/broker/download/${candidate}/${version}/${platform_parameter}"
|
||||
local base_name="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)"
|
||||
local zip_archive_target="${SDKMAN_DIR}/archives/${candidate}-${version}.zip"
|
||||
|
||||
#TODO: post installation hook here
|
||||
export local binary_input="${SDKMAN_DIR}/tmp/${base_name}.bin"
|
||||
export local zip_output="${SDKMAN_DIR}/tmp/$base_name.zip"
|
||||
|
||||
local zip_archive="${SDKMAN_DIR}/archives/${candidate}-${version}.zip"
|
||||
mv "$download_binary" "$zip_archive"
|
||||
__sdkman_echo_debug "Moved to archive folder: $zip_archive"
|
||||
__sdkman_secure_curl_download "$download_url" > "$binary_input"
|
||||
__sdkman_echo_debug "Downloaded binary to: $binary_input"
|
||||
|
||||
#responsible for taking `binary_input` and producing `zip_output`
|
||||
__sdkman_secure_curl "${SDKMAN_CURRENT_API}/hooks/post/${candidate}/${version}/${platform_parameter}" | bash
|
||||
__sdkman_echo_debug "Processed binary as: $zip_output"
|
||||
|
||||
mv "$zip_output" "$zip_archive_target"
|
||||
__sdkman_echo_debug "Moved to archive folder: $zip_archive_target"
|
||||
else
|
||||
echo ""
|
||||
echo "Found a previously downloaded ${candidate} ${version} archive. Not downloading it again..."
|
||||
|
||||
@@ -126,7 +126,7 @@ class SdkmanBashEnvBuilder {
|
||||
SDKMAN_LEGACY_API : legacyService,
|
||||
SDKMAN_CURRENT_API : currentService,
|
||||
SDKMAN_VERSION : sdkmanVersion,
|
||||
SDKMAN_DEBUG_MODE : "true",
|
||||
sdkman_debug_mode : 'true',
|
||||
JAVA_HOME : jdkHome
|
||||
]
|
||||
|
||||
|
||||
@@ -28,11 +28,13 @@ And(~'^the candidate "([^"]*)" version "([^"]*)" is not available for download$'
|
||||
And(~/^the candidate "(.*?)" version "(.*?)" is available for download on "(.*?)"$/) { String candidate, String version, String platform ->
|
||||
String lowerCaseUname = UnixUtils.asUname(platform).toLowerCase()
|
||||
primeEndpointWithString("/candidates/${candidate}/${version}/${lowerCaseUname}", "valid")
|
||||
primeEndpointWithString("/hooks/post/${candidate}/${version}/${lowerCaseUname}", 'mv $binary_input $zip_output') //bash command
|
||||
primeDownloadFor(SERVICE_UP_URL, candidate, version, lowerCaseUname)
|
||||
}
|
||||
|
||||
And(~/^the candidate "(.*?)" version "(.*?)" is not available for download on "(.*?)"$/) { String candidate, String version, String platform ->
|
||||
primeEndpointWithString("/candidates/${candidate}/${version}/${UnixUtils.asUname(platform).toLowerCase()}", "invalid")
|
||||
String lowerCaseUname = UnixUtils.asUname(platform).toLowerCase()
|
||||
primeEndpointWithString("/candidates/${candidate}/${version}/${lowerCaseUname}", "invalid")
|
||||
}
|
||||
|
||||
And(~'^a "([^"]*)" list view is available for consumption$') { String candidate ->
|
||||
|
||||
Reference in New Issue
Block a user