function printUsage
{
cat <<EOT
-Usage: "$PROG_NAME_" <chroot target>
+Usage: "$PROG_NAME_" NEWROOT [COMMAND....]
-$PROG_NAME__ is a chroot wrapper with proc/sys/pts/dev fs handling
+$PROG_NAME_ is a chroot wrapper with proc/sys/pts/dev filesystem handling
EOT
}
shift $(($OPTIND - 1))
if (( $# < 1 )); then
+ printUsage
die "Wrong number of arguments."
fi
-DEST_="$1"
+DEST_="$1"; shift
if [ ! -d "$DEST_" ]; then
die "Target chroot does not exist: $DEST_"
mountit "proc" "proc"
mountit "sysfs" "sys"
mountit "/dev" "dev" "--bind"
-chroot "$DEST_" /bin/bash
+if (( $# < 1 )); then
+ chroot "$DEST_"
+ RC=$?
+else
+ chroot "$DEST_" "$@"
+ RC=$?
+fi
umount_all
+
+exit $RC