summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch-nspawn.in4
-rw-r--r--archbuild.in5
-rw-r--r--lib/archroot.sh13
-rw-r--r--lib/common.sh12
-rw-r--r--makechrootpkg.in5
-rw-r--r--mkarchroot.in4
6 files changed, 19 insertions, 24 deletions
diff --git a/arch-nspawn.in b/arch-nspawn.in
index 5c0f46f..5d5620d 100644
--- a/arch-nspawn.in
+++ b/arch-nspawn.in
@@ -25,8 +25,6 @@ usage() {
exit 1
}
-orig_argv=("$@")
-
while getopts 'hC:M:c:' arg; do
case "$arg" in
C) pac_conf="$OPTARG" ;;
@@ -39,7 +37,7 @@ done
shift $(($OPTIND - 1))
(( $# < 1 )) && die 'You must specify a directory.'
-check_root "$0" "${orig_argv[@]}"
+check_root
working_dir=$(readlink -f "$1")
shift 1
diff --git a/archbuild.in b/archbuild.in
index 9c5d706..4fb33c3 100644
--- a/archbuild.in
+++ b/archbuild.in
@@ -1,6 +1,7 @@
#!/bin/bash
m4_include(lib/common.sh)
+m4_include(lib/archroot.sh)
base_packages=(base-devel)
makechrootpkg_args=(-c -n)
@@ -29,8 +30,6 @@ usage() {
exit 1
}
-orig_argv=("$@")
-
while getopts 'hcr:' arg; do
case "${arg}" in
c) clean_first=true ;;
@@ -39,7 +38,7 @@ while getopts 'hcr:' arg; do
esac
done
-check_root "$0" "${orig_argv[@]}"
+check_root
# Pass all arguments after -- right to makepkg
makechrootpkg_args+=("${@:$OPTIND}")
diff --git a/lib/archroot.sh b/lib/archroot.sh
index 25e94fb..7d7ab67 100644
--- a/lib/archroot.sh
+++ b/lib/archroot.sh
@@ -1 +1,14 @@
CHROOT_VERSION='v4'
+
+##
+# usage : check_root
+##
+orig_argv=("$0" "$@")
+check_root() {
+ (( EUID == 0 )) && return
+ if type -P sudo >/dev/null; then
+ exec sudo -- "${orig_argv[@]}"
+ else
+ exec su root -c "$(printf ' %q' "${orig_argv[@]}")"
+ fi
+}
diff --git a/lib/common.sh b/lib/common.sh
index 387fb8c..599be54 100644
--- a/lib/common.sh
+++ b/lib/common.sh
@@ -227,15 +227,3 @@ 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
-}
diff --git a/makechrootpkg.in b/makechrootpkg.in
index 79b387d..695b898 100644
--- a/makechrootpkg.in
+++ b/makechrootpkg.in
@@ -9,6 +9,7 @@
# GNU General Public License for more details.
m4_include(lib/common.sh)
+m4_include(lib/archroot.sh)
shopt -s nullglob
@@ -258,8 +259,6 @@ move_products() {
}
# }}}
-orig_argv=("$@")
-
while getopts 'hcur:I:l:nTD:d:U:' arg; do
case "$arg" in
c) clean_first=true ;;
@@ -279,7 +278,7 @@ done
[[ ! -f PKGBUILD && -z "${install_pkgs[*]}" ]] && die 'This must be run in a directory containing a PKGBUILD.'
[[ -n $makepkg_user && -z $(id -u "$makepkg_user") ]] && die 'Invalid makepkg user.'
-check_root "$0" "${orig_argv[@]}"
+check_root
# Canonicalize chrootdir, getting rid of trailing /
chrootdir=$(readlink -e "$passeddir")
diff --git a/mkarchroot.in b/mkarchroot.in
index e03b4f9..010de3c 100644
--- a/mkarchroot.in
+++ b/mkarchroot.in
@@ -23,8 +23,6 @@ usage() {
exit 1
}
-orig_argv=("$@")
-
while getopts 'hC:M:c:' arg; do
case "$arg" in
C) pac_conf="$OPTARG" ;;
@@ -38,7 +36,7 @@ shift $(($OPTIND - 1))
(( $# < 2 )) && die 'You must specify a directory and one or more packages.'
-check_root "$0" "${orig_argv[@]}"
+check_root
working_dir="$(readlink -f $1)"
shift 1