Trying to upload all related projects
[easy-deb-chroot] / diablo / easy-deb-chroot / src / usr / bin / debbie
diff --git a/diablo/easy-deb-chroot/src/usr/bin/debbie b/diablo/easy-deb-chroot/src/usr/bin/debbie
new file mode 100755 (executable)
index 0000000..9726148
--- /dev/null
@@ -0,0 +1,45 @@
+#!/bin/sh
+# Chroots to Debian and runs a shell, or any command-line as non-root.
+
+# By Alan M Bruce (qole), Benson Mitchell and Thomas Perl
+#
+# GPL licensed; keep code free!
+
+if [ "`whoami`" = "root" ] ; then
+  echo "please don't run me as root!"
+  exit 9
+fi
+
+#Pull in the config, if possible...
+[ -f /home/user/.chroot ] && . /home/user/.chroot
+
+#This comes from the config file... If not, fall back on 'user'
+#[ "x$DEBUSER" != x ] || DEBUSER=user
+DEBUSER=$USER
+
+CHROOTUSER=$DEBUSER
+
+#If display's not given, go to primary display. If it's set, let's not
+#mangle it to allow convenient use of USB VGA out, or multiple Xomaps.
+[ "x$DISPLAY" != x ] || export DISPLAY=:0.0
+
+#This enables long-hold-to-right-click in all GTK+ apps.
+#Maybe we'd be better to add libgtkstylus.so anyway, but for now, we'll
+#just leave it if they've got any non-empty GTK_MODULES 
+[ "x$GTK_MODULES" != x ] || export GTK_MODULES=libgtkstylus.so
+
+#Note use of su below, so no Debian-side script req'd to drop privileges.
+#With no args, use a shell; su will get the right one, with no -c
+#With args, just run them as $DEBUSER.
+
+if [ $# = 0 ] ; then
+  echo Starting Debian shell... >/dev/stderr
+  sudo /sbin/debian su $DEBUSER
+else
+  # Workaround to allow "debbie" to be used as login shell
+  if [ "$1" == "-c" ]; then
+    shift
+  fi
+  echo Starting Debian $* >/dev/stderr
+  sudo /sbin/debian su $DEBUSER -c "$*"
+fi