#!/bin/bash

# allow settings to be updated via environment
: "${xvfb_lockdir:=/recordings/.xvfb-locks}" # Lock folder necessary to block displays
: "${xvfb_display_min:=99}"                  # Min display
: "${xvfb_display_max:=599}"                 # Max display

mkdir -p -- "$xvfb_lockdir" || exit

i=$xvfb_display_min # minimum display number
while ((i < xvfb_display_max)); do
  if [ -f "/tmp/.X$i-lock" ]; then
    ((++i))
    continue
  fi
  exec 5>"$xvfb_lockdir/$i" || continue
  if flock -x -n 5; then
    exec xvfb-run --server-num="$i" "$@" || exit
  fi
  ((i++))
done
