#!/bin/bash

# MySQL-Tunnel via SSH
# by Bernhard Häussner, original by Daniel Lorch <daniel.lorch@tsunamihost.ch> 2003

# Configuration part

# The local port MySQL will be available as (7777)
LOCAL_MYSQL_PORT=
# Remote user on the server (username)
REMOTE_USER=

# Remote host (193.74.65.155)
REMOTE_HOST=

# The port MySQL is available on the remote server
REMOTE_MYSQL_PORT=3306

# Number of seconds the runnign notification is shown
NOTIFICATION_TIME=5

# Main script

SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)

MYSQL_TUNNEL_COMMAND="ssh -L $LOCAL_MYSQL_PORT:127.0.0.1:$REMOTE_MYSQL_PORT $REMOTE_USER@$REMOTE_HOST -N -f"


if [ `ps x | grep "$MYSQL_TUNNEL_COMMAND" | grep -v grep | wc -l` -ge 1 ]; then
	kdialog --title "MySQL Tunnel" --yesno "MySQL Tunnel is running. (Access $REMOTE_MYSQL_PORT via port $LOCAL_MYSQL_PORT)\n Do you want it to stay active?"
	if [ $? = 1 ]; then
		PID=`ps x | grep "$MYSQL_TUNNEL_COMMAND" | grep -v grep | head -n1 | awk '{ print $1 }'`
		kill $PID
		kdialog --msgbox "MySQL Tunnel (pid $PID) stopped. \n No connection possible"
	else
		kdialog --title "MySQL Tunnel enabled" --passivepopup "Access $REMOTE_MYSQL_PORT via port $LOCAL_MYSQL_PORT" $NOTIFICATION_TIME
	fi
else
	kdialog --title "MySQL Tunnel" --yesno "MySQL Tunnel is disabled. (Access $REMOTE_MYSQL_PORT via port $LOCAL_MYSQL_PORT)\n Do you want to enable it?"
	if [ $? = 0 ]; then
		$MYSQL_TUNNEL_COMMAND
		kdialog --title "MySQL Tunnel enabled" --passivepopup "Access $REMOTE_MYSQL_PORT via port $LOCAL_MYSQL_PORT" $NOTIFICATION_TIME
	else
		kdialog --msgbox "MySQL Tunnel still stopped. \n No connection possible"
	fi
fi

