Merge branch 'master' of github.com:cloudbuilders/nfs-stack
diff --git a/build_lxc.sh b/build_lxc.sh
index 8d5ef42..1a2cea3 100755
--- a/build_lxc.sh
+++ b/build_lxc.sh
@@ -8,20 +8,13 @@
 CONTAINER_GATEWAY=${CONTAINER_GATEWAY:-192.168.1.1}
 NAMESERVER=${NAMESERVER:-192.168.1.1}
 COPYENV=${COPYENV:-1}
+WARMCACHE=${WARMCACHE:-0}
 
 # Destroy any existing container
 lxc-stop -n $CONTAINER
+sleep 1
 lxc-destroy -n $CONTAINER
-
-FSTAB=/tmp/fstab
-cat > $FSTAB <<EOF
-none /var/lib/lxc/$CONTAINER/dev/pts devpts defaults 0 0
-none /var/lib/lxc/$CONTAINER/proc proc defaults 0 0
-none /var/lib/lxc/$CONTAINER/sys sysfs defaults 0 0
-none /var/lib/lxc/$CONTAINER/var/lock tmpfs defaults 0 0
-none /var/lib/lxc/$CONTAINER/var/run tmpfs defaults 0 0
-/var/cache/apt/ $APTCACHEDIR none bind 0 0
-EOF
+sleep 1
 
 # Create network configuration
 NET_CONF=/tmp/net.conf
@@ -30,18 +23,26 @@
 lxc.network.link = $BRIDGE
 lxc.network.flags = up
 lxc.network.ipv4 = $CONTAINER_CIDR
-lxc.mount = $FSTAB
 EOF
 
 # Configure the network
 lxc-create -n $CONTAINER -t natty -f $NET_CONF
 
+if [ "$WARMCACHE" = "1" ]; then
+    # Pre-cache files
+    BASECACHE=/var/cache/lxc/natty/rootfs-amd64
+    chroot $BASECACHE apt-get update
+    chroot $BASECACHE apt-get install -y `cat apts/* | cut -d\# -f1 | egrep -v "(rabbitmq|libvirt-bin|mysql-server)"`
+    chroot $BASECACHE pip install `cat pips/*`
+fi
+
 # Where our container lives
 ROOTFS=/var/lib/lxc/$CONTAINER/rootfs/
 
-# Copy over your ssh keys if desired
-if [ $COPYENV ]; then
+# Copy over your ssh keys and env if desired
+if [ "$COPYENV" = "1" ]; then
     cp -pr ~/.ssh $ROOTFS/root/.ssh
+    cp -p ~/.ssh/id_rsa.pub $ROOTFS/root/.ssh/authorized_keys
     cp -pr ~/.gitconfig $ROOTFS/root/.gitconfig
     cp -pr ~/.vimrc $ROOTFS/root/.vimrc
     cp -pr ~/.bashrc $ROOTFS/root/.bashrc
@@ -80,16 +81,20 @@
 /root/install.sh
 EOF
 
-# Setup apt cache
+# Setup cache
 # FIXME - use proper fstab mount
 CWD=`pwd`
-APTCACHEDIR=$CWD/cache/apt
-mkdir -p $APTCACHEDIR
-cp -pr $APTCACHEDIR/* $ROOTFS/var/cache/apt/
+CACHEDIR=$CWD/cache/
+mkdir -p $CACHEDIR/apt
+mkdir -p $CACHEDIR/pip
+cp -pr $CACHEDIR/apt/* $ROOTFS/var/cache/apt/
+cp -pr $CACHEDIR/pip/* $ROOTFS/var/cache/pip/
 
 # Configure cgroup directory
-mkdir -p /cgroup
-mount none -t cgroup /cgroup
+if [ ! -d /cgroup ] ; then
+    mkdir -p /cgroup
+    mount none -t cgroup /cgroup
+fi
 
 # Start our container
 lxc-start -d -n $CONTAINER