Skip to content

Commit 346d625

Browse files
committed
apt-utils.sh: get base-files package version from GHA
1 parent 45a1a09 commit 346d625

File tree

1 file changed

+19
-26
lines changed

1 file changed

+19
-26
lines changed

lib/functions/general/apt-utils.sh

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,22 @@
99
function apt_find_upstream_package_version_and_download_url() {
1010
declare sought_package_name="${1}"
1111

12-
declare -a package_info_download_urls=()
1312
declare first_letter_of_sought_package_name="${sought_package_name:0:1}"
1413
declare mirror_with_slash="undetermined/"
1514

1615
case "${DISTRIBUTION}" in
1716
Ubuntu)
1817
# Only LTS releases have an "-updates" repo that is worth looking into
1918
if [[ "${RELEASE}" == "focal" || "${RELEASE}" == "jammy" ]]; then # @TODO: release info information, is_ubuntu_release_lts() or similar
20-
package_info_download_urls+=("https://packages.ubuntu.com/${RELEASE}-updates/${ARCH}/${sought_package_name}/download")
19+
package_download_release=${RELEASE}-updates
2120
else
22-
package_info_download_urls+=("https://packages.ubuntu.com/${RELEASE}/${ARCH}/${sought_package_name}/download")
21+
package_download_release=${RELEASE}
2322
fi
2423
mirror_with_slash="${UBUNTU_MIRROR}"
2524
;;
2625

2726
Debian)
28-
package_info_download_urls+=("https://packages.debian.org/${RELEASE}/${ARCH}/${sought_package_name}/download")
27+
package_download_release=${RELEASE}
2928
mirror_with_slash="${DEBIAN_MIRROR}"
3029
;;
3130

@@ -41,35 +40,29 @@ function apt_find_upstream_package_version_and_download_url() {
4140

4241
declare base_down_url="http://${mirror_with_slash}pool/main/${first_letter_of_sought_package_name}/${sought_package_name}"
4342

44-
declare index package_info_download_url
45-
# loop over the package_info_download_urls with index and value
46-
for index in "${!package_info_download_urls[@]}"; do
47-
package_info_download_url="${package_info_download_urls[$index]}"
48-
display_alert "Testing URL" "${package_info_download_url}" "debug"
49-
50-
declare package_info_download_url_file
51-
package_info_download_url_file="$(mktemp)"
52-
curl --silent --show-error --max-time 10 "${package_info_download_url}" > "${package_info_download_url_file}" || true # don't fail
53-
declare package_info_download_url_file_package_name # grep the file for the package name. parse "<kbd>name</kbd>"
54-
package_info_download_url_file_package_name="$(grep -oP '(?<=<kbd>)[^<]+' "${package_info_download_url_file}" | grep "^${sought_package_name}_" | head -n 1)"
55-
rm -f "${package_info_download_url_file}"
56-
57-
display_alert "Package name parsed" "${package_info_download_url_file_package_name}" "debug"
58-
if [[ "${package_info_download_url_file_package_name}" == "${sought_package_name}_"* ]]; then
59-
found_package_filename="${package_info_download_url_file_package_name}"
60-
found_package_down_url="${base_down_url}/${found_package_filename}"
61-
display_alert "Found package filename" "${found_package_filename} in url ${package_info_download_url}" "debug"
62-
break
63-
fi
64-
done
43+
# get json with latest pacakge info generated by GHA
44+
case "${GITHUB_MIRROR}" in
45+
"ghproxy")
46+
package_info_download_url="https://ghp.ci/https://raw.githubusercontent.com/amazingfate/deb-files-parser/refs/heads/master/${sought_package_name}.json"
47+
;;
48+
*)
49+
package_info_download_url="https://raw.githubusercontent.com/amazingfate/deb-files-parser/refs/heads/master/${sought_package_name}.json"
50+
;;
51+
esac
52+
package_info_download_url_file="$(mktemp)"
53+
curl --silent --show-error --max-time 10 $package_info_download_url -o $package_info_download_url_file
54+
found_package_filename=$(jq -r .[\"${package_download_release}\"].${ARCH} $package_info_download_url_file)
6555

6656
if [[ "${found_package_filename}" == "${sought_package_name}_"* ]]; then
6757
display_alert "Found upstream base-files package filename" "${found_package_filename}" "info"
6858
else
69-
display_alert "Could not find package filename for '${sought_package_name}' in '${package_info_download_urls[*]}'" "looking for ${sought_package_name}" "warn"
59+
display_alert "Could not find package filename for '${sought_package_name}' in distro repo" "looking for ${sought_package_name}, found_package_filename is ${found_package_filename}" "warn"
7060
return 1
7161
fi
7262

63+
found_package_down_url="${base_down_url}/${found_package_filename}"
64+
display_alert "Found package filename" "${found_package_filename} in url ${found_package_down_url}" "debug"
65+
7366
# Now we have the package name, lets parse out the version.
7467
found_package_version="$(echo "${found_package_filename}" | grep -oP '(?<=_)[^_]+(?=_)')"
7568
display_alert "Found base-files upstream package version" "${found_package_version}" "info"

0 commit comments

Comments
 (0)