#!/bin/bash

set -e
set -f
set -u
set -o pipefail

_safe_param_stdin() {
	tr -d '$`<>"%;)(&+'"'"
}

_main_server_watcher(){
	inotifywait --event close_write --format '%f' --monitor "$dir" | \
	while read -r line
	do
		# TODO: validate IP/hostname
		local target
		target="$(head -n 1 "$dir/$line" | _safe_param_stdin)"
		test -n "$target"
		# TODO: calculate scale factor for xpra based on width and height
		# https://unix.stackexchange.com/a/400791
		#IFS=', =' read -a area < <(xprop -root '_NET_WORKAREA')
		# log how xpra is run into ~/.xsession-errors*
		( set -x ; xpra attach tcp://"$target":4648 ) &
		# XXX TODO: this fails for now, fix permissions and try to avoid 777
		# or maybe clean up old files by systemd-tmpfiles
		#unlink "$dir/$line"
	done
}

if [ "${SOURCED:-0}" != 1 ]; then
	readonly dir='/var/spool/doskast'
	_main_server_watcher "$@"
fi
