#!/bin/bash

########################################################################
#
#PROJECT:      Unified Sessions Manager
#AUTHOR:       Arno-Can Uestuensoez - acue@UnifiedSessionsManager.org
#MAINTAINER:   Arno-Can Uestuensoez - acue_sf1@sourceforge.net
#SHORT:        ctys
#CALLFULLNAME: Commutate To Your Session
#LICENCE:      GPL3
#VERSION:      01_02_007a17
#
########################################################################
#
# Copyright (C) 2007 Arno-Can Uestuensoez (UnifiedSessionsManager.org)
#
########################################################################

_myPKGNAME_X11_LIST="${BASH_SOURCE}"
_myPKGVERS_X11_LIST="01.01.001a00"
hookInfoAdd $_myPKGNAME_X11_LIST $_myPKGVERS_X11_LIST
_myPKGBASE_X11_LIST="`dirname ${_myPKGNAME_X11_LIST}`"

_X11_LIST="${_myPKGNAME_X11_LIST}"


#FUNCBEG###############################################################
#NAME:
#  listMySessionsX11
#
#TYPE:
#  bash-function
#
#DESCRIPTION:
#
#EXAMPLE:
#
#PARAMETERS:
#
#OUTPUT:
#  RETURN:
#
#  VALUES:
#    output format: "host:label:id:UUID:pid:uid:gid:sessionType:clientServer"
#
#FUNCEND###############################################################
function listMySessionsX11 () {
    local _site=$1 #only this is relevant for X11

    printVerboseDebug ${DBG_LVL_UIE} $LINENO $BASH_SOURCE "$FUNCNAME ${*}"
    if [ "${CTRL_SESSIONTYPE}" != "X11" -a "${CTRL_SESSIONTYPE}" != "ALL" ];then 
        ABORT=2
        printERR $LINENO $BASH_SOURCE ${ABORT} "Unexpected session type:CTRL_SESSIONTYPE=${CTRL_SESSIONTYPE}"
        gotoHell ${ABORT}
    fi

#    if [ "${_site}" == S -o "${_site}" == B ];then
	    local SERVERLST=`listProcesses|grep ' CREATE='|grep ' X11 '|grep -v grep`
            printVerboseDebug ${DBG_LVL_HAYSTACK} $LINENO $BASH_SOURCE "SERVERLST(RAW)=${SERVERLST}"
            local SERVERLST1=`echo "${SERVERLST}"|awk -f ${_myPKGBASE_X11}/serverlst01.${MYOS}.awk`
	    local SERVERLST2=;
	    for i7 in ${SERVERLST1};do
		local PID=`echo ${i7}|awk -F';' '{print $8}'`
		case ${MYOS} in
		    Linux)
			local BTCH=`${PS} ${PSEF} |grep $PID|grep -v "-e -F ${VERSION}"|grep -v grep |awk '{print $2}'`
			;;
		    OpenBSD)
			local BTCH=`${PS} ${PSL} |grep $PID|grep -v "-e -F ${VERSION}"|grep -v grep |awk '{print $2}'`
			;;
		esac
		printVerboseDebug ${DBG_LVL_HAYSTACK} $LINENO $BASH_SOURCE "PID=${PID} - BTCH=${BTCH}"
		if [ -n "${BTCH}" ];then
		    local S2=`echo ${i7}|awk -F ';' -v p=${BTCH} ' \
                          { \
                              printf("%s",$1); \
                              for(i=2;i<=NF;i++){ \
                                  if(i!=8)printf(";%s",$i); \
                                  else printf(";%s",p); \
                              } \
                              printf("\n"); \
                          }'`
		    SERVERLST2="${SERVERLST2} ${S2}"
		fi
	    done
#    fi

    printVerboseDebug ${DBG_LVL_MAINT} $LINENO $BASH_SOURCE "SESLST(PROCESSED)=\"${SERVERLST2}\""
    for i in ${SERVERLST2};do
	i="${MYHOST};${i}"
	printVerboseDebug ${DBG_LVL_UID} $LINENO $BASH_SOURCE "CURSES=${i}"
	echo "${i}"
    done
}


