From 1b239efff1d82d5ba15a2ab115005f156ac604a3 Mon Sep 17 00:00:00 2001 From: jtzero ? Date: Mon, 9 Feb 2026 20:22:18 -0500 Subject: [PATCH] fixes flink dist page filtering --- lib/utils.bash | 13 ++++++++++++- libexec/flink.sh | 10 ++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/utils.bash b/lib/utils.bash index bb91b5e..6145c86 100644 --- a/lib/utils.bash +++ b/lib/utils.bash @@ -133,6 +133,11 @@ get_version_folder() { curl "${curl_opts[*]}" "${dist_folder_url}/" 2>/dev/null | grep -o -E 'href=".+">' | grep -o -E "\".*${semverish}/\"" | tr -d '"/>' } +get_dist_folder_page() { + local -r dist_folder_url="${1}" + printf '%s' "$(curl "${curl_opts[*]}" "${dist_folder_url}/" 2>/dev/null)" +} + default_filename_extended_pattern() { local product_name="$1" local raw_user_version_arg="$2" @@ -173,6 +178,7 @@ get_download_url() { local semver="$2" local raw_user_version_arg="$3" local -r product_file="${LIB_DIR}/${PRODUCT_NAME}.sh" + local -r product_libexec_file="${THIS_PLUGIN_LIBEXEC_DIR}/${product_name}.sh" if [ -f "${product_file}" ]; then # shellcheck disable=SC1090 . "${product_file}" @@ -180,7 +186,12 @@ get_download_url() { local dist_folder_url="" dist_folder_url="$(get_dist_folder "${product_name}")" local version_folder="" - version_folder="$(get_version_folder "${product_name}" "${semver}")" + if [ -f "${product_libexec_file}" ]; then + local -r dist_folder_page="$(get_dist_folder_page "${dist_folder_url}")" + version_folder="$("${product_libexec_file}" filter_dist_folder_page "${semver}" "${dist_folder_page}")" + else + version_folder="$(get_version_folder "${product_name}" "${semver}")" + fi [ -z "${version_folder}" ] && fail "Could not get subversion folder for '${semver}' in '${dist_folder_url}'" local filename="" if [[ $(type -t grep_filename) == function ]]; then diff --git a/libexec/flink.sh b/libexec/flink.sh index 4052423..d8f80a7 100755 --- a/libexec/flink.sh +++ b/libexec/flink.sh @@ -44,6 +44,13 @@ filename_extended_pattern() { echo "\".*${product_name}-${version}.*(${file_extensions})\"" } +filter_dist_folder_page() { + local -r semverish="${1}" + local -r page="${2}" + printf '%s' "${page}" | grep -o -E 'href=".+">' | grep -o -E "\"flink-${semverish}/\"" | tr -d '"/>' + +} + case "$1" in latest_stable_pattern) latest_stable_pattern @@ -57,6 +64,9 @@ semver_from_user_input) filename_extended_pattern) filename_extended_pattern "${2}" "${3}" "${4}" "${5}" ;; +filter_dist_folder_page) + filter_dist_folder_page "${2}" "${3}" + ;; *) echo "Unknown function $1" >&2 exit 1