#!/bin/sh
# Build sandbox and execute X11 application
#
# /etc/network/interfaces
# auto br0
# iface br0 inet static
#   pre-up brctl addbr br0
#   address 172.18.0.1
#   netmask 255.255.255.0
#   post-up iptables -t nat -A POSTROUTING -j MASQUERADE
#   post-up sudo sysctl net.ipv4.ip_forward=1
#   post-down brctl delbr br0
#
# xorg.conf.dummy
# Section "Device"
#   Identifier  "Dummy"
#   Driver      "dummy"
# EndSection
# 
# lxc config
# lxc.utsname = sandbox
# lxc.network.type = veth
# lxc.network.flags = up
# lxc.network.link = br0
# lxc.network.ipv4 = 172.18.0.2/24
# lxc.network.hwaddr = 06:99:3a:6c:a7:8e

set -x

if ! pgrep -f 'lxc-start -n sandbox' > /dev/null; then
  LVNAME=$(mktemp -u sandbox-XXXXXXXX)
  sudo lvcreate --snapshot /dev/unraided/sandbox -n $LVNAME -L $(sudo lvs /dev/unraided/sandbox --noheadings -o lv_size --unbuffered)
  sudo mount /dev/unraided/$LVNAME /srv/lxc/sandbox
  sudo lxc-start -n sandbox -f /srv/lxc/sandbox/config -d
  while [ -e /srv/lxc/sandbox/rootfs/var/lib/initscripts/nologin ]; do
    sleep 1
  done
fi

if ! xpra list > /dev/null; then
  xpra --xvfb="Xorg +extension GLX +extension SHAPE +extension RANDR +extension RENDER -logfile /home/jrayhawk/2.log -config /home/jrayhawk/xorg.conf.dummy" start :2
  echo you may want to run xpra attach
fi

xauth remove 172.18.0.1:2
#xauth generate 172.18.0.1:2 . untrusted
xauth generate 172.18.0.1:2 .
xauth extract - 172.18.0.1:2 | ssh 172.18.0.2 "export DISPLAY=172.18.0.1:2; xauth merge -; $@"
