summaryrefslogtreecommitdiff
path: root/makechrootpkg.in
diff options
context:
space:
mode:
authorJan Alexander Steffens (heftig) <jan.steffens@gmail.com>2016-04-30 21:49:38 +0200
committerJan Alexander Steffens (heftig) <jan.steffens@gmail.com>2016-05-28 12:30:36 +0200
commit69a3a0e7c02ae754a01dd3139e9363604760d5e1 (patch)
treea3f57ab5b375e3793318b1ff3b62075ca9a7f4ee /makechrootpkg.in
parentca819a23579114f57476a609314efbe7d1bf2aea (diff)
makechrootpkg: Install packages in one step
Avoids having to specify them in dependency order.
Diffstat (limited to 'makechrootpkg.in')
-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