[arch-projects] [devtools] [PATCH 2/3] makechrootpkg: properly handle makepkg args
Dave Reisner
dreisner at archlinux.org
Sat May 10 09:44:33 EDT 2014
This allows handling of args with whitespace and other nonsense to be
passed properly to makepkg. Contrived example:
makechrootpkg -r /path/to/chroot -- --config "/path/to/some config"
---
makechrootpkg.in | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/makechrootpkg.in b/makechrootpkg.in
index 5ed7390..3ec7be1 100644
--- a/makechrootpkg.in
+++ b/makechrootpkg.in
@@ -100,7 +100,7 @@ else
fi
# Pass all arguments after -- right to makepkg
-makepkg_args="$makepkg_args ${*:$OPTIND}"
+makepkg_args=("${@:OPTIND}")
# See if -R was passed to makepkg
for arg in "${@:OPTIND}"; do
@@ -256,8 +256,9 @@ EOF
# This is a little gross, but this way the script is recreated every time in the
# working copy
+ printf -v extra_args ' %q' "${makepkg_args[@]}"
printf $'#!/bin/bash\n%s\n_chrootbuild %q %q' "$(declare -f _chrootbuild)" \
- "$makepkg_args" "$run_namcap" >"$copydir/chrootbuild"
+ "$extra_args" "$run_namcap" >"$copydir/chrootbuild"
chmod +x "$copydir/chrootbuild"
}
@@ -320,7 +321,7 @@ _chrootbuild() {
exit 1
fi
- sudo -u nobody makepkg $makepkg_args || exit 1
+ sudo -u nobody makepkg "$makepkg_args" || exit 1
if $run_namcap; then
pacman -S --needed --noconfirm namcap
--
1.9.2
More information about the arch-projects
mailing list