@@ -51,7 +51,7 @@ elif [ "${USERNAME}" = "none" ] || ! id -u "${USERNAME}" >/dev/null 2>&1; then
5151fi
5252
5353apt_get_update () {
54- if [ " $( find /var/lib/apt/lists/ * | wc -l ) " = " 0 " ]; then
54+ if [ ! -d /var/lib/apt/lists ] || [ -z " $( ls -A /var/lib/apt/lists 2> /dev/null ) " ]; then
5555 echo " Running apt-get update..."
5656 apt-get update -y
5757 fi
@@ -87,12 +87,26 @@ find_version_from_git_tags() {
8787 check_packages ca-certificates
8888 version_list=" $( git ls-remote --tags " ${repository} " | grep -oP " ${regex} " | tr -d ' ' | tr " ${separator} " " ." | sort -rV) "
8989 if [ " ${requested_version} " = " latest" ] || [ " ${requested_version} " = " current" ] || [ " ${requested_version} " = " lts" ]; then
90- declare -g " ${variable_name} " =" $( echo " ${version_list} " | head -n 1) "
91- else
92- set +e
93- declare -g " ${variable_name} " =" $( echo " ${version_list} " | grep -E -m 1 " ^${requested_version// ./ \\ .} ([\\ .\\ s]|$)" ) "
94- set -e
90+ requested_version=" "
91+ if [ " ${repository} " = " https://github.com/conda-forge/miniforge" ]; then
92+ check_packages curl
93+ github_api_headers=()
94+ if [ -n " ${GITHUB_TOKEN:- } " ]; then
95+ # use GITHUB_TOKEN to raise rate limits
96+ github_api_headers=(-H " Authorization: Bearer ${GITHUB_TOKEN} " -H " X-GitHub-Api-Version: 2022-11-28" )
97+ fi
98+ set +e
99+ requested_version=" $( curl -fsSL " ${github_api_headers[@]} " " https://api.github.com/repos/conda-forge/miniforge/releases/latest" | sed -nE ' s/^[[:space:]]*"tag_name":[[:space:]]*"([^"]+)".*/\1/p' ) "
100+ set -e
101+ fi
102+ # fallback to most recent git tag if rate limit exceeded; this may unfortunately include pre-releases
103+ if [ -z " ${requested_version} " ]; then
104+ requested_version=" $( echo " ${version_list} " | head -n 1) "
105+ fi
95106 fi
107+ set +e
108+ declare -g " ${variable_name} " =" $( echo " ${version_list} " | grep -E -m 1 " ^${requested_version// ./ \\ .} ([\\ .\\ s]|$)" ) "
109+ set -e
96110 fi
97111 if [ -z " ${! variable_name} " ] || ! echo " ${version_list} " | grep " ^${! variable_name// ./ \\ .} $" > /dev/null 2>&1 ; then
98112 echo -e " Invalid ${variable_name} value: ${requested_version} \nValid values:\n${version_list} " >&2
0 commit comments