9
9
function apt_find_upstream_package_version_and_download_url() {
10
10
declare sought_package_name=" ${1} "
11
11
12
- declare -a package_info_download_urls=()
13
12
declare first_letter_of_sought_package_name=" ${sought_package_name: 0: 1} "
14
13
declare mirror_with_slash=" undetermined/"
15
14
16
15
case " ${DISTRIBUTION} " in
17
16
Ubuntu)
18
17
# Only LTS releases have an "-updates" repo that is worth looking into
19
18
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
21
20
else
22
- package_info_download_urls+=( " https://packages.ubuntu.com/ ${RELEASE} / ${ARCH} / ${sought_package_name} /download " )
21
+ package_download_release= ${RELEASE}
23
22
fi
24
23
mirror_with_slash=" ${UBUNTU_MIRROR} "
25
24
;;
26
25
27
26
Debian)
28
- package_info_download_urls+=( " https://packages.debian.org/ ${RELEASE} / ${ARCH} / ${sought_package_name} /download " )
27
+ package_download_release= ${RELEASE}
29
28
mirror_with_slash=" ${DEBIAN_MIRROR} "
30
29
;;
31
30
@@ -41,35 +40,29 @@ function apt_find_upstream_package_version_and_download_url() {
41
40
42
41
declare base_down_url=" http://${mirror_with_slash} pool/main/${first_letter_of_sought_package_name} /${sought_package_name} "
43
42
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 )
65
55
66
56
if [[ " ${found_package_filename} " == " ${sought_package_name} _" * ]]; then
67
57
display_alert " Found upstream base-files package filename" " ${found_package_filename} " " info"
68
58
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"
70
60
return 1
71
61
fi
72
62
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
+
73
66
# Now we have the package name, lets parse out the version.
74
67
found_package_version=" $( echo " ${found_package_filename} " | grep -oP ' (?<=_)[^_]+(?=_)' ) "
75
68
display_alert " Found base-files upstream package version" " ${found_package_version} " " info"
0 commit comments