chiark / gitweb /
add chroot-setup, chroot-teardown, and chroot-enter suite of tools
[bin.git] / chroot-setup
diff --git a/chroot-setup b/chroot-setup
new file mode 100755 (executable)
index 0000000..015acda
--- /dev/null
@@ -0,0 +1,27 @@
+#! /bin/sh -e
+if [ -e "$1/proc/cmdline" ]; then exit; fi
+sudo mount --bind /proc "$1/proc"
+sudo mount --bind /sys "$1/sys"
+sudo mount --bind /dev "$1/dev"
+sudo mount --bind /dev/pts "$1/dev/pts"
+mkdir -p "$1/tmp/.X11-unix" "$1/tmp/.ICE-unix"
+sudo mount --bind /tmp/.X11-unix "$1/tmp/.X11-unix"
+sudo mount --bind /tmp/.ICE-unix "$1/tmp/.ICE-unix"
+if [ "$SSH_AUTH_SOCK" ]; then
+       sudo mkdir -p "$1$(dirname "$SSH_AUTH_SOCK")"
+       sudo mount --bind "$(dirname "$SSH_AUTH_SOCK")" "$1$(dirname "$SSH_AUTH_SOCK")"
+fi
+if [ "$GPG_AGENT_INFO" ]; then
+       sudo mkdir -p "$1$(dirname "$GPG_AGENT_INFO")"
+       sudo mount --bind "$(dirname "$GPG_AGENT_INFO")" "$1$(dirname "$GPG_AGENT_INFO")"
+fi
+if [ -d /home/cjwatson/.keychain ]; then
+       sudo mount --bind /home/cjwatson/.keychain "$1/home/cjwatson/.keychain"
+fi
+xauth list | sudo chroot "$1" su cjwatson -c 'xargs -l1 xauth add'
+rm -f "$1/home/cjwatson/.ICEauthority"
+iceauth list | sudo chroot "$1" su cjwatson -c 'xargs -l1 iceauth add'
+sudo cp -a /etc/resolv.conf "$1/etc/"
+if [ -d /home/cjwatson/src ] && [ -d "$1/home/cjwatson/src" ]; then
+       sudo mount --bind /home/cjwatson/src "$1/home/cjwatson/src"
+fi