#! /bin/sh -e
+
+# Chroot preparation:
+# locale-gen en_GB.UTF-8
+# apt-get --no-install-recommends install keychain xauth x11-xserver-utils
+# adduser --disabled-password cjwatson
+# addgroup --system admin
+# adduser cjwatson admin
+# visudo # add '%admin ALL=(ALL) ALL'
+
if [ -e "$1/proc/cmdline" ]; then exit; fi
+
+ensure_dir_mine () {
+ sudo mkdir -p "$1"
+ sudo chown cjwatson:cjwatson "$1"
+}
+
sudo mount --bind /proc "$1/proc"
sudo mount --bind /sys "$1/sys"
sudo mount --bind /dev "$1/dev"
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")"
+ ensure_dir_mine "$1$(dirname "$SSH_AUTH_SOCK")"
sudo mount --bind "$(dirname "$SSH_AUTH_SOCK")" "$1$(dirname "$SSH_AUTH_SOCK")"
fi
+if [ -d /home/cjwatson/.ssh/control ]; then
+ ensure_dir_mine "$1/home/cjwatson/.ssh"
+ ensure_dir_mine "$1/home/cjwatson/.ssh/control"
+ sudo mount --bind /home/cjwatson/.ssh/control "$1/home/cjwatson/.ssh/control"
+fi
if [ "$GPG_AGENT_INFO" ]; then
- sudo mkdir -p "$1$(dirname "$GPG_AGENT_INFO")"
+ ensure_dir_mine "$1$(dirname "$GPG_AGENT_INFO")"
sudo mount --bind "$(dirname "$GPG_AGENT_INFO")" "$1$(dirname "$GPG_AGENT_INFO")"
fi
if [ -d /home/cjwatson/.keychain ]; then
+ ensure_dir_mine "$1/home/cjwatson/.keychain"
sudo mount --bind /home/cjwatson/.keychain "$1/home/cjwatson/.keychain"
fi
-xauth list | sudo chroot "$1" su cjwatson -c 'xargs -l1 xauth add'
+xauth list | sudo chroot "$1" su cjwatson -c 'xargs -l1 xauth add' || true
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
+if [ -d /home/cjwatson/src ]; then
+ ensure_dir_mine "$1/home/cjwatson/src"
sudo mount --bind /home/cjwatson/src "$1/home/cjwatson/src"
fi