Support multiple release types and EA builds (#179)

* Support multiple release types and EA builds
* Improve iteration
* Keep files without release type backward compatible.
This commit is contained in:
Jonatan Ivanov 2023-01-06 07:36:36 -08:00 committed by GitHub
parent 0720a4b573
commit 02b4fb3e53
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 7 deletions

View File

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

View File

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