grml-chroot: exit with according exit code.
[grml-scripts.git] / usr_sbin / grml-chroot
index 7e5f503..b3d1184 100755 (executable)
@@ -20,9 +20,9 @@ function die
 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
 }
@@ -74,10 +74,11 @@ done
 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_"
@@ -87,5 +88,13 @@ fi
 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