#!/bin/bash

for arg in User_Id User_Name Home_Dir Group_Id Group_Name Appl_Dir
do
    declare "$arg"="$1"
    shift
done

Cmd=$( printf " %q" "$@" | sed -e 's/^ //' -e 's/\\;/;/g')


echo    "User Add & Exec: User_Id: (${User_Id})   User_Name: [${User_Name}]   Home_Dir: [${Home_Dir}]   Group_Id: (${Group_Id})   Group_Name: [${Group_Name}]   Appl_Dir: [${Appl_Dir}]"
echo -n "                 Display: [${DISPLAY}]   Cmd: [${Cmd}]"

#i=2

#while [[ $i -le $# ]]
#do
#    echo -n " [${!i}]"
#    i=$(($i + 1))
#done

echo ""
echo ""


echo "Creating group..."

groupadd --gid ${Group_Id} ${Group_Name}


echo "Creating user..."

if [[ ! -d ${Home_Dir} ]]
then
    home_opts="--create-home"
fi

useradd 2>/dev/null --uid ${User_Id} --gid ${Group_Id} -m --home-dir ${Home_Dir} ${home_opts} --password "" ${User_Name}


echo "Update global profile..."

echo -e "export DISPLAY=${DISPLAY}\nexport XDG_RUNTIME_DIR=/run/user/${User_Id}" >/etc/profile.d/x11.sh

chown ${User_Name}:${Group_Name} /run/user/${User_Id}


echo "Exec Cmd..."

#echo "su - -P ${User_Name} -c \"$*\""

su - -P ${User_Name} -c "cd  \"${Appl_Dir}\"; ${Cmd}"

echo "Completed!"
