summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Hesse <mail@eworm.de>2019-03-22 12:21:08 +0100
committerLevente Polyak <anthraxx@archlinux.org>2019-03-25 23:32:04 +0100
commitd9b73504484da7e185dc590ef13d5f31942f6051 (patch)
tree57e8956209322da3d1795b8c37e4e95ce2422f49
parent6645701cb13a4801c870c8231d3cdc9988ce593c (diff)
downloaddevtools32-d9b73504484da7e185dc590ef13d5f31942f6051.tar.xz
arch-nspawn: get all mirrors from host
Now that pacconf gives us all mirrors we can use them, instead of just the first one. Signed-off-by: Christian Hesse <mail@eworm.de>
-rw-r--r--arch-nspawn.in14
1 files changed, 8 insertions, 6 deletions
diff --git a/arch-nspawn.in b/arch-nspawn.in
index b9c846e..e68e2e7 100644
--- a/arch-nspawn.in
+++ b/arch-nspawn.in
@@ -60,17 +60,19 @@ fi
pacconf_cmd=$(command -v pacman-conf || command -v pacconf)
# shellcheck disable=2016
-host_mirror=$($pacconf_cmd --repo extra Server 2> /dev/null | head -1 | sed -r 's#(.*/)extra/os/.*#\1$repo/os/$arch#')
+host_mirrors=($($pacconf_cmd --repo extra Server 2> /dev/null | 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')
# {{{ functions
build_mount_args() {
declare -g mount_args=()
- if [[ -n $host_mirror_path ]]; then
- mount_args+=("--bind-ro=$host_mirror_path")
- fi
+ for host_mirror in "${host_mirrors[@]}"; do
+ if [[ $host_mirror == *file://* ]]; then
+ host_mirror_path=$(echo "$host_mirror" | sed -r 's#file://(/.*)/\$repo/os/\$arch#\1#g')
+ mount_args+=("--bind-ro=$host_mirror_path")
+ fi
+ done
mount_args+=("--bind=${cache_dirs[0]}")
@@ -81,7 +83,7 @@ build_mount_args() {
copy_hostconf () {
cp -a /etc/pacman.d/gnupg "$working_dir/etc/pacman.d"
- echo "Server = $host_mirror" >"$working_dir/etc/pacman.d/mirrorlist"
+ printf 'Server = %s\n' "${host_mirrors[@]}" >"$working_dir/etc/pacman.d/mirrorlist"
[[ -n $pac_conf ]] && cp "$pac_conf" "$working_dir/etc/pacman.conf"
[[ -n $makepkg_conf ]] && cp "$makepkg_conf" "$working_dir/etc/makepkg.conf"