Switch to root when started as regular user
In collaborative builder machine, these scripts are often allowed to become root via sudo. This patch avoid to prefix them by sudo each time or call su. Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
This commit is contained in:
parent
7aac293d76
commit
03611dc63e
|
@ -37,8 +37,8 @@ while getopts 'hC:M:c:' arg; do
|
|||
done
|
||||
shift $(($OPTIND - 1))
|
||||
|
||||
(( $EUID != 0 )) && die 'This script must be run as root.'
|
||||
(( $# < 1 )) && die 'You must specify a directory.'
|
||||
check_root "$0" "$@"
|
||||
|
||||
working_dir=$(readlink -f "$1")
|
||||
shift 1
|
||||
|
|
|
@ -40,9 +40,7 @@ done
|
|||
# Pass all arguments after -- right to makepkg
|
||||
makechrootpkg_args+=("${@:$OPTIND}")
|
||||
|
||||
if (( EUID )); then
|
||||
die 'This script must be run as root.'
|
||||
fi
|
||||
check_root "$0" "$@"
|
||||
|
||||
if ${clean_first} || [[ ! -d "${chroots}/${repo}-${arch}" ]]; then
|
||||
msg "Creating chroot for [${repo}] (${arch})..."
|
||||
|
|
|
@ -228,3 +228,16 @@ find_cached_package() {
|
|||
return 1
|
||||
esac
|
||||
}
|
||||
|
||||
##
|
||||
# usage : check_root ("$0" "$@")
|
||||
##
|
||||
check_root() {
|
||||
(( EUID == 0 )) && return
|
||||
if type -P sudo >/dev/null; then
|
||||
exec sudo -- "$@"
|
||||
else
|
||||
exec su root -c "$(printf '%q' "$@")"
|
||||
fi
|
||||
die 'This script must be run as root.'
|
||||
}
|
||||
|
|
|
@ -81,7 +81,7 @@ while getopts 'hcur:I:l:nTD:d:' arg; do
|
|||
esac
|
||||
done
|
||||
|
||||
(( EUID != 0 )) && die 'This script must be run as root.'
|
||||
check_root "$0" "$@"
|
||||
|
||||
[[ ! -f PKGBUILD && -z "${install_pkgs[*]}" ]] && die 'This must be run in a directory containing a PKGBUILD.'
|
||||
|
||||
|
|
|
@ -35,9 +35,10 @@ while getopts 'hC:M:c:' arg; do
|
|||
done
|
||||
shift $(($OPTIND - 1))
|
||||
|
||||
(( $EUID != 0 )) && die 'This script must be run as root.'
|
||||
(( $# < 2 )) && die 'You must specify a directory and one or more packages.'
|
||||
|
||||
check_root "$0" "$@"
|
||||
|
||||
working_dir="$(readlink -f $1)"
|
||||
shift 1
|
||||
|
||||
|
|
Loading…
Reference in New Issue