IMAGE_DOWNLOAD_URL="https://api.access.redhat.com/management/v1/images/@CHECKSUM@/download"
+OUTPUT=
IMAGE_KEY=
OUTPUT_FILE=
ACCESS_TOKEN=
+IMAGE_INFO=
+BASE_FILE_NAME=
+DOWNLOAD_URL=
+
detect_color
DESCRIPTION=$( cat <<-EOF
case "${arg}" in
-O|--output)
j=$(( $i + 1 ))
- output="${REMAINING_OPTS[$j]}"
+ OUTPUT="${REMAINING_OPTS[$j]}"
i=$(( $i + 2 ))
;;
*) echo -e "Internal error - option '${RED}${arg}${NORMAL}' was wrong!"
fi
local output_base="${IMAGE_KEY}.iso"
- if [[ "${output}" ]] ; then
- if [[ -d "${output}" ]] ; then
- OUTPUT_FILE="${output}/${output_base}"
+ if [[ "${OUTPUT}" ]] ; then
+ if [[ -d "${OUTPUT}" ]] ; then
+ OUTPUT_FILE="${OUTPUT}/${output_base}"
else
- OUTPUT_FILE="${output}"
+ OUTPUT_FILE="${OUTPUT}"
fi
else
OUTPUT_FILE="${output_base}"
}
+#------------------------------------------------------------------------------
+get_image_info() {
+
+ local output_base="${IMAGE_KEY}.iso"
+ local image_download_url=$( echo "${IMAGE_DOWNLOAD_URL}" | sed -e "s/@CHECKSUM@/${IMAGE_CHECKSUM}/" )
+ debug "Image download URL: '${CYAN}${image_download_url}${NORMAL}'."
+
+ local cmd="curl --silent -H 'Authorization: Bearer ${ACCESS_TOKEN}' '${image_download_url}'"
+
+ if [[ "${SIMULATE}" == "y" ]] ; then
+ info "Executing: ${cmd}"
+ IMAGE="fake_image_info"
+ BASE_FILE_NAME="fake-${output_base}"
+ DOWNLOAD_URL="fake_download_url"
+ else
+ debug "Executing: ${cmd}"
+ IMAGE_INFO=$( eval ${cmd} )
+ BASE_FILE_NAME=$( echo "${IMAGE_INFO}" | jq -r .body.filename)
+ DOWNLOAD_URL=$( echo "${IMAGE_INFO}" | jq -r .body.href)
+ fi
+
+ if [[ "${OUTPUT}" ]] ; then
+ if [[ -d "${OUTPUT}" ]] ; then
+ OUTPUT_FILE="${OUTPUT}/${BASE_FILE_NAME}"
+ else
+ OUTPUT_FILE="${OUTPUT}"
+ fi
+ else
+ OUTPUT_FILE="${BASE_FILE_NAME}"
+ fi
+
+ debug "Got image info:\n${CYAN}$( echo "${IMAGE_INFO}" | jq . )${NORMAL}"
+ debug "Got base filename: '${CYAN}${BASE_FILE_NAME}${NORMAL}'."
+ debug "Got download URL: '${CYAN}${DOWNLOAD_URL}${NORMAL}'."
+
+ info "Got output file: '${GREEN}${OUTPUT_FILE}${NORMAL}'."
+}
+
#------------------------------------------------------------------------------
main() {
set_locale "en_US.utf8"
get_access_token
+ get_image_info
}