#!/bin/bash
  
OTHERARGS=()
######################################################################################
#parse command line arguments
until [ -z "$1" ]
do
  CURARG=$1
  echo CURARG is $CURARG
  case "$CURARG" in
    "--user="* )        MYUSER=${CURARG#*=} ;;
    "--user"   ) shift; MYUSER=$1 ;;
    *) OTHERARGS+=($CURARG) ;;
  esac
  shift
done
#handle undefined variables
#for booleans, undefined or "" is the only boolean false, test using: if [ $MYFLAG ]
if [ -z "$MYUSER" ] ; then MYUSER="root" ;fi
######################################################################################

#echo doing --user $MYUSER rest is  "${OTHERARGS[@]}"


CURUSER=`cat /var/lib/groovix/session-info/current-user`

MYDISPLAY=`cat /var/lib/groovix/session-info/current-display`
export DISPLAY=:$MYDISPLAY

export DBUS_SESSION_BUS_ADDRESS="$(ps -u $CURUSER e | grep dbus-daemon | tail -n 1 | grep -Eo  'DBUS_SESSION_BUS_ADDRESS=\S*' | cut -f 2-99 -d=)"
#export XAUTHORITY="$(echo ~$CURUSER)/.Xauthority"
export XAUTHORITY="$(getent passwd $CURUSER | cut -f6 -d:)/.Xauthority"

exec pkexec  --user "$MYUSER" env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS "${OTHERARGS[@]}"
