#!/usr/bin/sh
#
# shell script to start a ssh tunnel
#
# History
#
# 21.09.2006 /bs        initial release
#
  SSH_OPTIONS="-o StrictHostKeyChecking=no -t -N -f -C -c blowfish"
  LOCAL_PORT="5905"
  INCOMING_PORT="7905"
  SSH_BINARY="/applications/ssh/CURRENT/bin/ssh"
  SSH_USER="support"
  SSH_TARGET_USER="sunmcadm"

  THISHOST=` hostname `

  SSH_PARAMETER="-l ${SSH_TARGET_USER} ${SSH_OPTIONS} -L ${INCOMING_PORT}:localhost:${LOCAL_PORT} ${THISHOST}"

  if [ "` /usr/ucb/whoami `"x != "${SSH_USER}"x ] ; then
    echo "Restarting \"$0\" as user \"${SSH_USER}\" ..."
    su - "${SSH_USER}" "cd $PWD ; $0 $* "
    exit $?
  fi

# ----------------------------------------------------------
# sub routines

# --------------------------------------
# main: start

  __TRUE=0
  __FALSE=1

  ACTION=$1
#  [ "${ACTION}"x = ""x ] && ACTION="start"

# check if the tunnel is already running
#
  set -- `  /usr/ucb/ps -wwwax | grep -v grep | grep "ssh ${SSH_PARAMETER}" `
  SSH_PID=$1
  if [ "$2"x != ""x ] ; then
    SSH_ALREADY_RUNNING=${__TRUE}
  else
    SSH_ALREADY_RUNNING=${__FALSE}
  fi

  case ${ACTION} in

    "start" ) if [ ${SSH_ALREADY_RUNNING} = ${__TRUE} ] ; then
                echo "The ssh tunnel (${INCOMING_PORT} -> ${LOCAL_PORT}) is already running; the PID is ${SSH_PID}"
              else
                echo "Starting the ssh tunnel (${INCOMING_PORT} -> ${LOCAL_PORT})  ..."
                cd ` dirname ${SSH_BINARY} `
                ./` basename ${SSH_BINARY} ` ${SSH_PARAMETER}
                [ $? -ne 0 ] && echo "ERROR: Can not start ssh!"
              fi
              ;;

    "stop"  ) if [ ${SSH_ALREADY_RUNNING} = ${__FALSE} ] ; then
                echo "The ssh tunnel (${INCOMING_PORT} -> ${LOCAL_PORT}) is not running."
              else
                echo "Stopping the ssh tunnel (${INCOMING_PORT} -> ${LOCAL_PORT}) ..."
                kill -15 ${SSH_PID}
              fi
              ;;

   "status" ) if [ ${SSH_ALREADY_RUNNING} = ${__TRUE} ] ; then
                echo "The ssh tunnel (${INCOMING_PORT} -> ${LOCAL_PORT}) is already running; the PID is ${SSH_PID}"
              else
                echo "The ssh tunnel (${INCOMING_PORT} -> ${LOCAL_PORT}) is not running."
              fi
              ;;


          * ) echo "ERROR: Invalid parameter found: \"${ACTION}\" "
              echo "Usage: $( basename $0 ) [start|stop]"
              exit 1
              ;;

  esac

b