#!/bin/bash
set -eu -o pipefail

cfgdir="${XDG_DATA_HOME:-"$HOME/.local/share"}"/warzone2100
rundir="${XDG_RUNTIME_DIR:-"/run/user/$(id -u)"}"

mkdir -p "${cfgdir}"

EXTRA=""
for n in /dev/i2c* ; do
  if [ -c $n ] ; then
    EXTRA="$EXTRA --dev-bind $n $n"
  fi
done

if [ -e /dev/nvidia0 ] ; then
    EXTRA="$EXTRA --dev-bind /dev/nvidia0 /dev/nvidia0 --dev-bind /dev/nvidiactl /dev/nvidiactl"
fi

# resolvconf for dns
if [ -d /run/resolvconf ] ; then
    EXTRA="$EXTRA --ro-bind /run/resolvconf /run/resolvconf"
fi
# systemd-resolve for dns
if [ -d /run/systemd/resolve ] ; then
    EXTRA="$EXTRA --ro-bind /run/systemd/resolve /run/systemd/resolve"
fi

exec bwrap --bind "${cfgdir}" "${cfgdir}" --bind-try "${rundir}/pulse" "${rundir}/pulse" --bind-try "${rundir}/wayland-0" "${rundir}/wayland-0" --bind-try "${rundir}/wayland-0.lock" "${rundir}/wayland-0.lock" --bind-try "${rundir}/pipewire-0" "${rundir}/pipewire-0" --bind-try "${rundir}/pipewire-0.lock" "${rundir}/pipewire-0.lock" --bind-try "${rundir}/pipewire-0-manager" "${rundir}/pipewire-0-manager" --bind-try "${rundir}/pipewire-0-manager.lock" "${rundir}/pipewire-0-manager.lock"  --ro-bind /usr /usr --ro-bind /etc /etc --symlink usr/bin /bin --symlink usr/lib64 /lib64 --symlink usr/lib /lib --proc /proc --dev /dev $EXTRA --unshare-pid --dev-bind /dev/dri /dev/dri --ro-bind-try "$HOME/.pulse" "$HOME/.pulse" ${XAUTHORITY+--ro-bind-try "$XAUTHORITY" "$XAUTHORITY"} --ro-bind /sys /sys /usr/games/warzone2100.real
