#!/bin/bash

item_name=interpass3000

ENVPATH="/opt/apps/com.ftsafe.${item_name}/files/env"
case "$1" in
	env)
		env | sed  's/^/export /g' | sed 's/=/=\"/1' | sed 's/$/\";/g' > ${ENVPATH}
		exit $?
		;;
esac

SHOWUI="/opt/apps/com.ftsafe.${item_name}/files/bin/${1}"
if [ -x ${SHOWUI} ]; then
  echo "文件存在且可执行" > /dev/null
else
  echo "文件不存在或无执行权限"
  exit -1
fi

function getUser
{
    user=
    userPath=/run/systemd/users
    userFiles=`ls $userPath`
    for userFile in $userFiles
    do
        if [ "${userFile}" -ge "500" ];then
            userState=`awk -F= '{ if($1=="STATE") print $2}' ${userPath}/${userFile}`
            if [ ${userState} == "active" ];then
                user=`awk -F= '{ if($1=="NAME") print $2}' ${userPath}/${userFile}`
                ONLINE_SEATS=`awk -F= '{ if($1=="ONLINE_SEATS") print $2}' ${userPath}/${userFile}`
                SESSIONSID=`awk -F= '{ if($1=="DISPLAY") print $2}' ${userPath}/${userFile}`
                break
            fi
        fi
    done

    if [ "$user" == "" ];then
        user=root
    fi
    echo $user
}
ONLINE_SEATS=
SESSIONSID=

showUser=$(getUser)

userID=`id -u ${showUser}`
#cat /proc/$(pgrep -u ftsafe | head -1)/environ | tr '\0' '\n' | while IFS='=' read -r name value; do export "$name"="$value" 2>/dev/null; done && cmd1

mydev1=`cat ${ENVPATH} | grep ^DISPLAY`
if [ 'x' != "x$myenv1" ]; then
	mydev1=`cat ${ENVPATH} | grep GTK_IM_MODULE`
fi

EXPORT=
if [ 'x' == "x$myenv1" ]; then
	pids=$(pgrep -u ${showUser})

	mypid=
	for pid in $pids
	do
		myenv=`cat /proc/$pid/environ 2>/dev/null | tr '\0' '\n' | grep  ^DISPLAY `
		if [ 'x' != "x$myenv" ]; then
			myenv=`cat /proc/$pid/environ 2>/dev/null | tr '\0' '\n' | grep ^GTK_IM_MODULE`
			if [ 'x' != "x$myenv" ]; then
				mypid=$pid 
				break;
			fi  
		fi  
	done

	if [ 'x' == "x$mypid" ]; then
		exit 1;
	fi

	#envname="/tmp/.tmpenv"`date "+%s"`
	EXPORT=`cat /proc/$mypid/environ | tr '\0' '\n' | sed  's/^/export /g' | sed 's/=/=\"/1' | sed 's/$/\";/g'`
	echo ${EXPORT} > ${ENVPATH}
fi
#cat /proc/$mypid/environ | tr '\0' '\n' | sed  's/=/=\"/' | sed 's/$/\"/g' > ${envname}

#chown $showUser:$showUser ${envname}
#cat /proc/$pid/environ | tr '\0' '\n' | while IFS='=' read -r name value; do EXPORT="${EXPORT} export $name=$value;" ; done

sudo -i -u $showUser -- bash -c "ls /tmp/ > /dev/null"

if [ $? -ne 0 ]; then
    ${SHOWUI} $2 $3 $4 $5 $6
else
	sudo -i -u $showUser -- bash -c "source ${ENVPATH};  ${SHOWUI} $2 $3 $4 $5 $6"
	#sudo -i -u $showUser -- bash -c ". ${envname}; rm -rf ${envname};  ${SHOWUI} $2 $3 $4 $5 $6 &"
fi

