#!/bin/sh

. $TS_GLOBAL

# Set Geometry Variables for, needed for certain session types

let COLS=`echo $SCREEN_RESOLUTION | cut -f1 -dx`/6-1
let ROWS=`echo $SCREEN_RESOLUTION | cut -f2 -dx`/14

echo "COLS=$COLS" >> $TS_RUNTIME
echo "ROWS=$ROWS" >> $TS_RUNTIME

let x=-1
let y=-1

# Add each Applications configuration parameters

while [ $x -le $y ]; do
   let x=x+1
   SESSION_TYPE=
   SESSION_TITLE=
   SESSION_AUTOSTART=
   SESSION_WORKSPACE=
   SESSION_SCREEN=
   SESSION_SCREEN_POSITION=
   SESSION_ICON=
   SESSION_CUSTOM_CONFIG=

   # Get Session details
   . $TS_GLOBAL
   SESSION_TYPE=`eval echo '$SESSION_'$x'_TYPE'`
   SESSION_TITLE=`eval echo '$SESSION_'$x'_TITLE'`
   SESSION_AUTOSTART=`eval echo '$SESSION_'$x'_AUTOSTART'`
   SESSION_WORKSPACE=`eval echo '$SESSION_'$x'_WORKSPACE'`
   SESSION_SCREEN=`eval echo '$SESSION_'$x'_SCREEN'`
   SESSION_SCREEN_POSITION=`eval echo '$SESSION_'$x'_SCREEN_POSITION'`
   SESSION_ICON=`eval echo '$SESSION_'$x'_ICON'`
   SESSION_CUSTOM_CONFIG=`eval echo '$SESSION_'$x'_CUSTOM_CONFIG'`

   # Get package parameters
   session_type=`make_caps $SESSION_TYPE`
   SESSION_TYPE=`make_lower $SESSION_TYPE`
   SESSION_SERVER=`eval echo '$SESSION_'$x'_'$session_type'_SERVER'`
   SESSION_APPLICATION_SET=`eval echo '$SESSION_'$x'_'$session_type'_APPLICATION_SET'`
   SESSION_OPTIONS=`eval echo '$SESSION_'$x'_'$session_type'_OPTIONS'`

   # Define Default Values

   if [ -z "$SCREEN" ]; then SCREEN=0 ; fi
   if [ -z "$WORKSPACE" ]; then WORKSPACE=1 ; fi
   if [ -z "$AUTOSTART" ]; then AUTOSTART=On ; fi
   if [ -z "$SERVER" ]; then SERVER=. ; fi
   if [ -z "$OPTIONS" ]; then OPTIONS=. ; fi
   if [ -z "$ICON" ]; then ICON=Off ; fi
   if [ -z "$SCREEN_POSITION" ]; then SCREEN_POSITION=1 ; fi


   # Set Default Values
   if [ -z "$SESSION_SCREEN" ] ;then SESSION_SCREEN=$SCREEN ; fi
   if [ -z "$SESSION_SCREEN_POSITION" ] ;then SESSION_SCREEN_POSITION=$SCREEN_POSITION ; fi
   if [ -z "$SESSION_WORKSPACE" ]; then SESSION_WORKSPACE=$WORKSPACE; fi
   if [ -z "$SESSION_AUTOSTART" ]; then SESSION_AUTOSTART=$AUTOSTART ; fi
   if [ -z "$SESSION_CUSTOM_CONFIG" ]; then SESSION_CUSTOM_CONFIG=Off ; fi
   if [ -z "$SESSION_SERVER" ] ;then SESSION_SERVER=$SERVER ; fi
   if [ -z "$SESSION_OPTIONS" ] ;then SESSION_OPTIONS=$OPTIONS ; fi
   if [ -z "$SESSION_ICON" ] ;then SESSION_ICON=$ICON ; fi
   if [ -e /etc/cmd/$SESSION_TYPE.change_server_type ] ; then
	if [ -n "$SESSION_TITLE" ] ; then
	   	SESSION_SERVER=`replace_char "$SESSION_TITLE" " " "_"`
	elif [ -n "$SESSION_APPLICATION_SET" ] ;then
		SESSION_SERVER=$SESSION_APPLICATION_SET
		SESSION_TITLE=$SESSION_APPLICATION_SET
	else
		SESSION_SERVER="$SESSION_TYPE"_"$x"
   	fi
   fi
   if [ -z "$SESSION_TITLE" ] ;then SESSION_TITLE=$SESSION_TYPE ; fi

   SESSION_AUTOSTART=`make_caps $SESSION_AUTOSTART`
   SESSION_ICON=`make_caps $SESSION_ICON`
   SESSION_SCREEN_POSITION=`make_caps $SESSION_SCREEN_POSITION`
   SESSION_CUSTOM_CONFIG=`make_caps $SESSION_CUSTOM_CONFIG`

   if [ "$SESSION_SCREEN_POSITION" != "1" ] ; then
   	if [ "$DUALHEAD" != "ENABLED" ] ; then
	   DUALHEAD=ENABLED
	   echo "DUALHEAD=$DUALHEAD" >> $TS_RUNTIME
  	fi
   fi

   if [ -n "$SESSION_TYPE" ] ;then
     let y=y+1
     echo $SESSION_TYPE  \
	`replace_invalid "$SESSION_TITLE"`  \
	$SESSION_SCREEN  \
	$SESSION_SCREEN_POSITION  \
	$SESSION_WORKSPACE  \
	$SESSION_AUTOSTART  \
	$SESSION_CUSTOM_CONFIG  \
	$SESSION_ICON  \
	`replace_invalid "$SESSION_SERVER"`  \
	`replace_invalid "$SESSION_OPTIONS"` >> $WKDIR/session
   fi
done

if [ ! -e $WKDIR/session ] ; then
  echo_log -d "\n\nError, no valid session type!!!"
  echo_log -d "Boot aborted, please check your thinstation config files are correct"
  if pkg_initialized debug ; then
	  echo_log -d "Debug Enabled...continuing"
  else
	  halt
  fi
fi
