#!/bin/sh

# create

#
# setup
#
DIALOG=/usr/bin/dialog
TEMPFILE=~/tmp/sshmanager$$$$$
RCFILE=~/.sshmanagerrc
#

touch $TEMPFILE
chmod 600 $TEMPFILE

trap "rm -f $TEMPFILE" 0 1 2 5 15

if [ ! -f $RCFILE ]; then
  echo "No config found, creating one, exiting..."
  touch $RCFILE
  echo "# comment" >> $RCFILE
  echo "# syntax: % num name host user port" >> $RCFILE
  echo "% 1 myhost myhost.mydomain.com myusername 22" >> $RCFILE
  echo "Edit config file! ($RCFILE)"
  exit 1
else
  for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
  do
    ISTHERE=`cat $RCFILE | grep "^% $i " | wc -l | xargs`
    if [ "$ISTHERE" != "0" ]; then
      SSHLIST=`echo $SSHLIST; cat $RCFILE | grep "^% $i " | awk '{ printf $2" "$3 }'`
    fi
  done

  $DIALOG --menu "SSH sessions available:" 20 60 15 $SSHLIST 2> $TEMPFILE

  RETVAL=$?

  CHOICE=`cat $TEMPFILE`

  COMMAND=`cat $RCFILE | grep "^% $CHOICE " | head -1 | awk '{ print "ssh -p " $6 " " $5 "@" $4 }'`
  HOST=`cat $RCFILE | grep "^% $CHOICE " | head -1 | awk '{ print $4 }'`
  RUSER=`cat $RCFILE | grep "^% $CHOICE " | head -1 | awk '{ print $5 }'`
  PORT=`cat $RCFILE | grep "^% $CHOICE " | head -1 | awk '{ print $6 }'`

  case $RETVAL in
    0)
      clear
      echo "Logging into $HOST port $PORT as user $RUSER..."
      $COMMAND;;
    1)
      echo "Cancel pressed.";;
    255)
      echo "ESC pressed.";;
  esac
fi
