#!/bin/bash # mkicasession # creates ica sessions on-the-fly LOCATION="/etc/alx-config/ica-sessions" usage(){ echo "$(basename $0) sessionname server1 server2 server3 user pass domain screen [filename.ica]" echo "if filename is not given the sessionname will be used. echo "default location is ${LOCATATION}. exit 1 } create_ica(){ local SERVER1 SERVER2 SERVER3 SESSIONNAME USER PASS DOMAIN SCREEN #sessionname server1 server2 server3 user pass domain screen SESSIONNAME=$1 SERVER1=$2 SERVER2=$3 SERVER3=$4 USER=$5 PASS=$6 DOMAIN=$7 SCREEN=$8 ICAFILE=$9 if [ -z "${ICAFILE}" -a -n "${SESSIONNAME}" ] then ICAFILE="${LOCATION}/${SESSIONNAME}.ica" fi echo "[WFClient]" > ${ICAFILE} echo "Version=3" >> ${ICAFILE} [ -n "${SERVER1}" ] && echo "TcpBrowserAddress=${SERVER1}" >> ${ICAFILE} [ -n "${SERVER2}" ] && echo "TcpBrowserAddress2=${SERVER2}" >> ${ICAFILE} [ -n "${SERVER3}" ] && echo "TcpBrowserAddress3=${SERVER3}" >> ${ICAFILE} echo "ScreenPercent=0" >> ${ICAFILE} echo "[ApplicationServers]" >> ${ICAFILE} echo "${SESSIONNAME}=" >> ${ICAFILE} echo "[${SESSIONNAME}]" >> ${ICAFILE} echo "Address=${SESSIONNAME}" >> ${ICAFILE} echo "InitialProgram=#${SESSIONNAME}" >> ${ICAFILE} echo "DesiredColor=3" >> ${ICAFILE} echo "TransportDriver=TCP/IP" >> ${ICAFILE} echo "WinStationDriver=ICA 3.0" >> ${ICAFILE} [ -n "${USER}" ] && echo "Username=${USER}" >> ${ICAFILE} [ -n "${PASS}" ] && echo "ClearPassword=${PASS}" >> ${ICAFILE} [ -n "${DOMAIN}" ] && echo "Domain=${DOMAIN}" >> ${ICAFILE} case ${SCREEN} in full) echo "UseFullScreen=Yes" >> ${ICAFILE} echo "NoWindowManager=True" >> ${ICAFILE} ;; seamless) echo "TWIMode=On" >> ${ICAFILE} ;; *) echo "please use either 'full' or 'seamless'" exit 1 ;; esac } if [ -z "$1" \ -o -z "$2" \ -o -z "$5" \ -o -z "$6" \ -o -z "$7" \ -o -z "$8" ] then usage else create_ica "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" fi