projects
/
grml-scripts.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
grml_chroot: fix broken mount argument handling
[grml-scripts.git]
/
usr_sbin
/
grml-chroot
diff --git
a/usr_sbin/grml-chroot
b/usr_sbin/grml-chroot
index
a894e39
..
b13b57e
100755
(executable)
--- a/
usr_sbin/grml-chroot
+++ b/
usr_sbin/grml-chroot
@@
-6,14
+6,14
@@
# License: This file is licensed under the GPL v2.
################################################################################
# License: This file is licensed under the GPL v2.
################################################################################
-PROG_NAME_=$(basename
$0
)
+PROG_NAME_=$(basename
"$0"
)
DEST_=""
MOUNTED_="" # all mounted destinations
function die
{
DEST_=""
MOUNTED_="" # all mounted destinations
function die
{
- echo "Error: $
@
" >&2
+ echo "Error: $
*
" >&2
exit 1
}
exit 1
}
@@
-43,19
+43,20
@@
function mountit
local dest_="$2"
local options_="$3"
local dest_="$2"
local options_="$3"
- local all_options_=
""
+ local all_options_=
()
if [[ $options_ == "--bind" ]]; then
if [[ $options_ == "--bind" ]]; then
- all_options_
="--bind $type_"
+ all_options_
+=(--bind "$type_")
else
else
- all_options_
="-t $type_ none"
+ all_options_
+=(-t "$type_" none)
fi
fi
- mount
$all_options_
"${DEST_}/$dest_" && storeMounts "$dest_"
+ mount
"${all_options_[@]}"
"${DEST_}/$dest_" && storeMounts "$dest_"
}
function umount_all
{
}
function umount_all
{
- local reverse=$(echo $MOUNTED_ | awk '{ for (i=NF; i>1; i--) printf("%s ",$i); print $1; }')
+ local reverse
+ reverse=$(echo "$MOUNTED_" | awk '{ for (i=NF; i>1; i--) printf("%s ",$i); print $1; }')
for i in $reverse; do
umount "${DEST_}/$i"
done
for i in $reverse; do
umount "${DEST_}/$i"
done
@@
-72,14
+73,14
@@
while getopts "h" opt; do
?) printUsage; exit 64 ;;
esac
done
?) printUsage; exit 64 ;;
esac
done
-shift $((
$
OPTIND - 1))
+shift $((OPTIND - 1))
if (( $# < 1 )); then
printUsage
die "Wrong number of arguments."
fi
if (( $# < 1 )); then
printUsage
die "Wrong number of arguments."
fi
-if !
which
awk >/dev/null 2>&1 ; then
+if !
command -v
awk >/dev/null 2>&1 ; then
die "No awk binary found, required for execution."
fi
die "No awk binary found, required for execution."
fi
@@
-98,6
+99,12
@@
else
mountit "sysfs" "sys"
mountit "/dev" "dev" "--bind"
mountit "devpts" "dev/pts"
mountit "sysfs" "sys"
mountit "/dev" "dev" "--bind"
mountit "devpts" "dev/pts"
+ if [ -d /sys/firmware/efi/efivars ] ; then
+ mountit "efivarfs" "sys/firmware/efi/efivars"
+ fi
+ if [ -d "$DEST_"/run/udev ] && [ -d /run/udev ] ; then
+ mountit "/run/udev" "/run/udev" "--bind"
+ fi
fi
WROTE_DEBIAN_CHROOT=""
fi
WROTE_DEBIAN_CHROOT=""
@@
-116,7
+123,7
@@
else
fi
umount_all
fi
umount_all
-if [
! -z
"$WROTE_DEBIAN_CHROOT" ]; then
+if [
-n
"$WROTE_DEBIAN_CHROOT" ]; then
rm "$DEST_"/etc/debian_chroot
fi
rm "$DEST_"/etc/debian_chroot
fi