--- lxc-start-ephemeral.old	2012-09-05 15:51:50.367703358 -0700
+++ lxc-start-ephemeral	2012-09-05 15:56:54.265181670 -0700
@@ -14,7 +17,7 @@
 UNION="overlayfs"
 
 usage() {
-    echo "usage: lxc-start-ephemeral [-U uniontype] [-d|--daemon] [-h] [-b bdir] [-u user] [-S key] [-n name] -o orig -- [COMMAND [ARGS...]]"
+    echo "usage: lxc-start-ephemeral [-U uniontype] [-d|--daemon] [-h] [--overlaydir] [-b bdir] [-u user] [-S key] [-n name] -o orig -- [COMMAND [ARGS...]]"
 }
 
 help() {
@@ -37,11 +40,12 @@
 }
 
 shortoptions='hb:n:o:u:S:dU:'
-longoptions='help,name:,orig:,bdir:,user:,ssh-key:,daemon,union:'
+longoptions='help,name:,orig:,overlaydir:,bdir:,user:,ssh-key:,daemon,union:'
 
 LXC_RUNNING=0
 LXC_MOUNTED=0
 DAEMON=0
+USER_OVERLAY_DIR=
 
 cleanup() {
     if [ $LXC_RUNNING -eq 1 ]; then
@@ -50,9 +54,9 @@
     if [ $LXC_MOUNTED -eq 1 ]; then
         sudo umount $EPHEMERAL_BIND_DIR
         sudo umount $LXC_DIR
-        sudo umount $OVERLAY_DIR
+        test "$USER_OVERLAY_DIR" || sudo umount "$OVERLAY_DIR"
         sudo rmdir $LXC_DIR
-        sudo rmdir $OVERLAY_DIR
+        sudo rm -rf "$OVERLAY_DIR"
     fi
     exit 1
 }
@@ -113,6 +117,11 @@
 		DAEMON=1
 		shift
 		;;
+	    --overlaydir)
+		shift
+		USER_OVERLAY_DIR="$1"
+		shift
+		;;
 	    -U|--union)
 		shift
 		UNION=$1
@@ -153,8 +162,26 @@
 setup_container()
 {
     echo "Setting up ephemeral container..."
-    OVERLAY_DIR=`mktemp -d /tmp/lxc-lp-XXXXXXX`
-    sudo mount -t tmpfs none $OVERLAY_DIR
+
+    case "$USER_OVERLAY_DIR" in
+    "")
+        OVERLAY_DIR=`mktemp -d /tmp/lxc-lp-XXXXXXX`
+        sudo mount -t tmpfs none "$OVERLAY_DIR"
+        ;;
+    *)
+        if ! test -d "$USER_OVERLAY_DIR"
+        then
+            echo "--overlaydir: directory must exist"
+            exit 1
+        fi
+        OVERLAY_DIR="$USER_OVERLAY_DIR/overlay"
+        if test -d "$OVERLAY_DIR"
+        then
+            sudo rm -rf "$OVERLAY_DIR"
+        fi
+        sudo mkdir "$OVERLAY_DIR"
+        ;;
+    esac
     case "$LXC_NAME" in
     "")
         LXC_DIR=`sudo mktemp -d --tmpdir=/var/lib/lxc $LXC_BASE-temp-XXXXXXX`
@@ -343,11 +370,11 @@
     # echo "umounting lxc_dir $LXC_DIR" >&2
     sudo umount $LXC_DIR
     # echo "umounting overlay" >&2
-    sudo umount $OVERLAY_DIR
+    test "$USER_OVERLAY_DIR" || sudo umount "$OVERLAY_DIR"
     # echo "rming lxc_dir $LXC_DIR" >&2
     sudo rmdir $LXC_DIR
     # echo "rming overlay dir $OVERLAY_DIR" >&2
-    sudo rmdir $OVERLAY_DIR
+    sudo rm -rf "$OVERLAY_DIR"
 }
 
 handle_container()
