#!/bin/zsh
# vim: sts=2 sw=2 et
setopt no_unset warn_create_global
main() {
local container display xsession_cookie
(( $# == 2 )) || exit 100
container=$1
xsvc_name=$2
[[ $container == */* ]] && exit 100
display=${DISPLAY#:}
xsession_cookie=${"$(xauth list $DISPLAY)"##* } || exit $?
s6-sudo /run/cmd.s link $container xsession.$display.$USER run/exec/xsvc run/exec/exec || exit $?
s6-sudo /run/cmd.s link xpra.$USER xsession.$display.$USER run/exec/x11 || exit $?
s6-sudo /run/cmd.s link xsession.$display.$USER xpra.$USER tmp/.X11-unix/X$display || exit $?
local -a xpra
xpra=( $(s6-sudo /run/inbox/xpra.ccx/run/exec/x11 $display $xsession_cookie start-xpra-for-container $container) )
(($#xpra == 2)) || exit 1
s6-sudo /run/cmd.s link xpra.$USER $container tmp/.X11-unix/X$xpra[1] || exit $?
exec s6-sudo /run/inbox/$container/run/exec/xsvc "$xpra[@]" "$xsvc_name"
}
typeset -f -t main
main "$@"