summaryrefslogtreecommitdiff
path: root/arch-nspawn.in
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2017-09-30 23:40:47 -0400
committerEli Schwartz <eschwartz@archlinux.org>2018-05-13 09:16:20 -0400
commit5b3c14454a9c1ec00a3ef11f3f599281127b383d (patch)
tree6a743b950600a3781c5d5ef177452c56eefab743 /arch-nspawn.in
parent4408bb2a1529b5a1e62e12ac617daac945d44e27 (diff)
downloaddevtools-5b3c14454a9c1ec00a3ef11f3f599281127b383d.tar.xz
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.
Diffstat (limited to 'arch-nspawn.in')
-rw-r--r--arch-nspawn.in3
1 files changed, 2 insertions, 1 deletions
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')