shell: Make shell interactive mode work

Signed-off-by: Joel Fernandes <joel@joelfernandes.org>
diff --git a/addons/run b/addons/run
index a5bdaf3..9738504 100755
--- a/addons/run
+++ b/addons/run
@@ -1,45 +1,7 @@
 #!/system/bin/sh
 spath=$( cd "$(dirname "$0")" ; pwd -P )
-
 cd $spath
 
-do_mounts()
-{
-	mount --bind /proc debian/proc/ > /dev/null
-	mount --bind /dev debian/dev/ > /dev/null
-	mount --bind /sys debian/sys/ > /dev/null
-	mount --bind /sys/kernel/debug/ debian/sys/kernel/debug/ > /dev/null
-	mount --bind /sys/kernel/debug/tracing/ debian/sys/kernel/debug/tracing/
-
-	# Fix up weirdness with debugfs permission changing because of
-	# above mounts.
-	chmod 0777       /sys/kernel/debug > /dev/null
-	chmod 0777 debian/sys/kernel/debug > /dev/null
-	chmod 0777       /sys/kernel/debug/tracing > /dev/null
-	chmod 0777 debian/sys/kernel/debug/tracing > /dev/null
-
-	# Mount Android partitions
-	if [ -d /d/ ]; then
-		if [ ! -d debian/d ]; then ln -s /sys/kernel/debug debian/d; fi
-	fi
-
-	if [ -d /data/ ]; then
-		mkdir -p debian/data/
-		mount --bind /data debian/data/
-	fi
-
-	if [ -d /system/ ]; then
-		mkdir -p debian/system/
-		mount --bind /system debian/system/
-	fi
-
-	if [ -d /vendor/ ]; then
-		mkdir -p debian/vendor/
-		mount --bind /vendor debian/vendor/
-	fi
-}
-
-mount | grep debian > /dev/null
-if [ $? -ne 0 ]; then do_mounts; fi
+source run.common
 
 chroot debian/ /bin/bash
diff --git a/addons/run-command b/addons/run-command
index eed84f9..6d5a8ca 100755
--- a/addons/run-command
+++ b/addons/run-command
@@ -2,6 +2,8 @@
 spath=$( cd "$(dirname "$0")" ; pwd -P )
 cd $spath
 
+source run.common
+
 # Directly execute a command within the chroot of an Android device
 CMD="$*"
 
diff --git a/addons/run.common b/addons/run.common
new file mode 100644
index 0000000..1ef22aa
--- /dev/null
+++ b/addons/run.common
@@ -0,0 +1,38 @@
+do_mounts()
+{
+	mount --bind /proc debian/proc/ > /dev/null
+	mount --bind /dev debian/dev/ > /dev/null
+	mount --bind /sys debian/sys/ > /dev/null
+	mount --bind /sys/kernel/debug/ debian/sys/kernel/debug/ > /dev/null
+	mount --bind /sys/kernel/debug/tracing/ debian/sys/kernel/debug/tracing/
+
+	# Fix up weirdness with debugfs permission changing because of
+	# above mounts.
+	chmod 0777       /sys/kernel/debug > /dev/null
+	chmod 0777 debian/sys/kernel/debug > /dev/null
+	chmod 0777       /sys/kernel/debug/tracing > /dev/null
+	chmod 0777 debian/sys/kernel/debug/tracing > /dev/null
+
+	# Mount Android partitions
+	if [ -d /d/ ]; then
+		if [ ! -d debian/d ]; then ln -s /sys/kernel/debug debian/d; fi
+	fi
+
+	if [ -d /data/ ]; then
+		mkdir -p debian/data/
+		mount --bind /data debian/data/
+	fi
+
+	if [ -d /system/ ]; then
+		mkdir -p debian/system/
+		mount --bind /system debian/system/
+	fi
+
+	if [ -d /vendor/ ]; then
+		mkdir -p debian/vendor/
+		mount --bind /vendor debian/vendor/
+	fi
+}
+
+mount | grep debian > /dev/null
+if [ $? -ne 0 ]; then do_mounts; fi