From d9b73504484da7e185dc590ef13d5f31942f6051 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 22 Mar 2019 12:21:08 +0100 Subject: 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 --- arch-nspawn.in | 14 ++++++++------ 1 file 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" -- cgit v1.2.3-70-g09d2