From 5b3c14454a9c1ec00a3ef11f3f599281127b383d Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Sat, 30 Sep 2017 23:40:47 -0400 Subject: Proper fix for pacman-git returning file urls from the cache It is much nicer to use a proper configuration parser to retrieve the primary mirror, rather than clever hacks using undocumented APIs, especially when their behavior as used then breaks in later releases. Fortunately, pacutils exists now and pacconf handles this quite elegantly. It has since been moved to pacman-git proper. Check if pacman-conf from a new enough version of pacman exists and fallback on pacconf from pacutils. --- arch-nspawn.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch-nspawn.in b/arch-nspawn.in index 50ce674..b9c846e 100644 --- a/arch-nspawn.in +++ b/arch-nspawn.in @@ -58,8 +58,9 @@ else cache_dirs=("$cache_dir") fi +pacconf_cmd=$(command -v pacman-conf || command -v pacconf) # shellcheck disable=2016 -host_mirror=$(pacman -Sddp extra/devtools 2>/dev/null | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#') +host_mirror=$($pacconf_cmd --repo extra Server 2> /dev/null | head -1 | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#') # shellcheck disable=2016 [[ $host_mirror == *file://* ]] && host_mirror_path=$(echo "$host_mirror" | sed -r 's#file://(/.*)/\$repo/os/\$arch#\1#g') -- cgit v1.2.3-70-g09d2