From 300a2bc473789871173122f9c231c7242ab79852 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Tue, 26 Nov 2019 00:19:14 -0500 Subject: [pacman-dev] [PATCH] WIP: makepkg: add PACMAN_AUTH configurable setting for sudo elevation If specified, this will be used no matter what. If not, then we check if sudo exists and use that, or else fall back on su. Implements FS#32621 Signed-off-by: Eli Schwartz --- scripts/makepkg.sh.in | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 2dcc45c5..9f641d97 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -226,15 +226,23 @@ missing_source_file() { } run_pacman() { - local cmd + local cmd cmdescape if [[ $1 = -@(T|Q)*([[:alpha:]]) ]]; then cmd=("$PACMAN_PATH" "$@") else cmd=("$PACMAN_PATH" "${PACMAN_OPTS[@]}" "$@") + cmdescape="$(printf '%q ' "${cmd[@]}")" + if (( ${#PACMAN_AUTH[@]} )); then + if in_array '%q' "${PACMAN_AUTH[@]}"; then + cmd=("${PACMAN_AUTH[@]/%q/$cmdescape}") + else + cmd=("${PACMAN_AUTH[@]}" "${cmd[@]}") + fi + fi if type -p sudo >/dev/null; then cmd=(sudo "${cmd[@]}") else - cmd=(su root -c "$(printf '%q ' "${cmd[@]}")") + cmd=(su root -c "$cmdescape") fi local lockfile="$(pacman-conf DBPath)/db.lck" while [[ -f $lockfile ]]; do -- 2.24.0