summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--makechrootpkg.in19
1 files changed, 8 insertions, 11 deletions
diff --git a/makechrootpkg.in b/makechrootpkg.in
index 9534c54..709e824 100644
--- a/makechrootpkg.in
+++ b/makechrootpkg.in
@@ -127,19 +127,16 @@ clean_temporary() {
}
install_packages() {
- local pkgname
+ local -a pkgnames
+ local ret
- for install_pkg in "${install_pkgs[@]}"; do
- pkgname="${install_pkg##*/}"
- cp "$install_pkg" "$copydir/$pkgname"
+ pkgnames=("${install_pkgs[@]##*/}")
- arch-nspawn "$copydir" \
- "${bindmounts_ro[@]}" "${bindmounts_rw[@]}" \
- pacman -U /$pkgname --noconfirm
- (( ret += !! $? ))
-
- rm "$copydir/$pkgname"
- done
+ cp -- "${install_pkgs[@]}" "$copydir/root/"
+ arch-nspawn "$copydir" "${bindmounts_ro[@]}" "${bindmounts_rw[@]}" \
+ pacman -U --noconfirm -- "${pkgnames[@]/#//root/}"
+ ret=$?
+ rm -- "${pkgnames[@]/#/$copydir/root/}"
# If there is no PKGBUILD we are done
[[ -f PKGBUILD ]] || exit $ret