for ((i=0; i<${#source[@]}; i++)); do infos=$( printf '%s\n' "${source[${i}]}" | \ sed -n ' s@^\(\([^:]\+\)::\)\?\(git\|hg\)+\('"$( printf '%s\|' \ 'https://git.archlinux.org/linux.git' \ 'https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git' \ 'https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git' \ 'https://github.com/zen-kernel/zen-kernel' \ 'https://hg.mozilla.org/mozilla-unified' | \ sed ' s/\\|$// s/[.]/[.]/g ' )"'\)\(?signed\)\?#\(\(tag\|commit\)=\S\+\)$@\3 \2 \4 \5 \6@ T p ' ) if [ -n "${infos}" ]; then source[${i}]=$( type="${infos%% *}" infos="${infos#* }" if [ -n "${infos%% *}" ]; then prefix="${infos%% *}" else prefix='' fi infos="${infos#* }" repo="${infos%% *}" repo64=$( printf '%s' "${repo}" | \ base64 -w0 | \ sed 's/=/%3D/g' ) infos="${infos#* }" if [ "${infos%% *}" = '?signed' ]; then key_check=$( printf '&valid_keys=' printf '%s,' "${validpgpkeys[@]}" | \ sed 's/,$//' ) else key_check='' fi infos="${infos#* }" if [ -z "${prefix}" ]; then prefix="${repo%.git}" prefix="${prefix##*/}" fi prefix_64=$( printf '%s/' "${prefix}" | \ base64 -w0 | \ sed 's/=/%3D/g' ) printf '%s-%s.tar.gz::https://archive-server.archlinux32.org/?t=%s&p=%s&r=%s%s&%s\n' \ "${prefix}" \ "${pkgver}" \ "${type}" \ "${prefix_64}" \ "${repo64}" \ "${key_check}" \ "${infos}" ) fi done