@@ -71,10 +71,12 @@ readonly archive_url="https://archive.archlinux.org/packages"
7171
7272# Desc: get ALA link for given package
7373# 1: Package
74+ # 2: Package compression
7475function get_archive_link () {
7576 local pkg=" $( rev <<< " ${1}" ) "
77+ local ext=" ${2} "
7678 local pkgname=" $( cut -d' -' -f4- <<< " ${pkg}" | rev) "
77- echo " ${archive_url} /${1: 0: 1} /${pkgname} /${1} .pkg.tar.xz "
79+ echo " ${archive_url} /${1: 0: 1} /${pkgname} /${1} .pkg.tar.${ext} "
7880}
7981
8082# Desc: check validity of archive URL
@@ -97,21 +99,23 @@ function download_archive_package () {
9799 else
98100 local pwd=" $( pwd) "
99101 local workdir=" $( mktemp -d) "
100- local target=" $( get_archive_link " ${1} " ) "
101102 cd " ${workdir} " || exit 1
102- if verify_archive_link " ${target} " ; then
103- echo " Downloading ${filename} " >&2
104- curl -L " ${target} " -o " ${filename} " 2> /dev/null
105- curl -L " ${target} .sig" -o " ${filename} .sig" 2> /dev/null
106- if gpg --keyring /etc/pacman.d/gnupg/pubring.gpg --verify " ${filename} .sig" " ${filename} " 2> /dev/null; then
107- mv " ${filename} " " ${cachedir} /"
108- echo " ${2} /${filename} "
109- else
110- echo " ${filename} doesn't pass signature verification" >&2
111- echo " check ${workdir} " >&2
112- exit 1
103+ for ext in zstd xz; do
104+ local target=" $( get_archive_link " ${1} " " $ext " ) "
105+ if verify_archive_link " ${target} " ; then
106+ echo " Downloading ${filename} " >&2
107+ curl -L " ${target} " -o " ${filename} " 2> /dev/null
108+ curl -L " ${target} .sig" -o " ${filename} .sig" 2> /dev/null
109+ if gpg --keyring /etc/pacman.d/gnupg/pubring.gpg --verify " ${filename} .sig" " ${filename} " 2> /dev/null; then
110+ mv " ${filename} " " ${cachedir} /"
111+ echo " ${2} /${filename} "
112+ else
113+ echo " ${filename} doesn't pass signature verification" >&2
114+ echo " check ${workdir} " >&2
115+ exit 1
116+ fi
113117 fi
114- fi
118+ done
115119 cd " ${pwd} " || exit 1
116120 rm -r " ${workdir} "
117121 fi
0 commit comments