From 02b4fb3e53f10002cc35bea9da803b2db61090b7 Mon Sep 17 00:00:00 2001 From: Jonatan Ivanov Date: Fri, 6 Jan 2023 07:36:36 -0800 Subject: [PATCH] Support multiple release types and EA builds (#179) * Support multiple release types and EA builds * Improve iteration * Keep files without release type backward compatible. --- bin/functions | 11 ++++++++++- update_data.bash | 20 ++++++++++++++------ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/bin/functions b/bin/functions index 9cd605c..70b831a 100755 --- a/bin/functions +++ b/bin/functions @@ -52,7 +52,16 @@ function retrieve-release-data() { local cache_file="${CACHE_DIR}/releases-${OS}-${ARCHITECTURE}.tsv" # shellcheck disable=SC2046 if [[ ! -r "${cache_file}" ]] || (( $($STAT "${STAT_OPTS[@]}" "${cache_file}") <= $(date +%s) - 3600 )) ; then - curl -s -f --compressed -L "https://raw.githubusercontent.com/halcyon/asdf-java/master/data/jdk-${OS}-${ARCHITECTURE}.tsv" -o "${cache_file}" + local base_url="https://raw.githubusercontent.com/halcyon/asdf-java/master/data/jdk-${OS}-${ARCHITECTURE}" + local url + case "$(get_asdf_config_value "java_release_type")" in + ga) url="$base_url-ga.tsv" ;; + ea) url="$base_url-ea.tsv" ;; + all) url="$base_url.tsv" ;; + *) url="$base_url-ga.tsv" ;; + esac + + curl -s -f --compressed -L "${url}" -o "${cache_file}" fi } diff --git a/update_data.bash b/update_data.bash index 6f50ee1..9aad180 100755 --- a/update_data.bash +++ b/update_data.bash @@ -5,6 +5,7 @@ set -Euo pipefail # See https://joschi.github.io/java-metadata/ for supported values LIST_OS="linux macosx" LIST_ARCH="x86_64 aarch64 arm32-vfp-hflt" +LIST_RELEASE_TYPE="ga ea" DATA_DIR="./data" @@ -16,29 +17,36 @@ fi function metadata_url { local os=$1 local arch=$2 + local release=$3 - echo "https://joschi.github.io/java-metadata/metadata/ga/${os}/${arch}.json" + echo "https://joschi.github.io/java-metadata/metadata/${release}/${os}/${arch}.json" } function fetch_metadata { local os=$1 local arch=$2 - local url - url=$(metadata_url "$os" "$arch") + local release=$3 local args=('-s' '-f' '--compressed' '-H' "Accept: application/json") if [[ -n "${GITHUB_API_TOKEN:-}" ]]; then args+=('-H' "Authorization: token $GITHUB_API_TOKEN") fi - curl "${args[@]}" -o "${DATA_DIR}/jdk-${os}-${arch}.json" "${url}" + local url + url=$(metadata_url "$os" "$arch" "$release") + curl "${args[@]}" -o "${DATA_DIR}/jdk-${os}-${arch}-${release}.json" "${url}" } for OS in $LIST_OS do for ARCH in $LIST_ARCH do - fetch_metadata "$OS" "$ARCH" + for RELEASE_TYPE in $LIST_RELEASE_TYPE + do + fetch_metadata "$OS" "$ARCH" "$RELEASE_TYPE" + done + cat "${DATA_DIR}/jdk-${OS}-${ARCH}"-*.json | jq -s 'add' > "${DATA_DIR}/jdk-${OS}-${ARCH}-all.json" + ln -s "jdk-${OS}-${ARCH}-ga.json" "${DATA_DIR}/jdk-${OS}-${ARCH}.json" done done @@ -50,5 +58,5 @@ RELEASE_QUERY='.[] for FILE in "${DATA_DIR}"/*.json do TSV_FILE="$(basename "${FILE}" .json).tsv" - jq -r "${RELEASE_QUERY}" "${FILE}" | sort -V > "${DATA_DIR}/${TSV_FILE}" + jq -r "${RELEASE_QUERY}" "${FILE}" | sort -V > "${DATA_DIR}/${TSV_FILE}" done