#!/bin/bash

def_user=$USER
def_addr="jupytera"
def_port="5000"
def_debug=false


function show_usage {
    echo "usage: $0 [-u USER] [-p PORT] [-s]"
    echo "    -u, --user USER    set user (default: ${def_user})"
    echo "    -p, --port PORT    set local port (default: ${def_port})"
    echo "    -s, --staging      tunnel to jupytera staging (default: jupytera production)"
    echo "    -d, --debug        turn on debug mode (default: off)"
    echo "    -h, --help, -?     show this help"
}


user=${def_user}
addr=${def_addr}
port=${def_port}
debug=${def_debug}

while [[ "$#" -gt 0 ]]; do
    case $1 in
        -u|--user) user="$2" ; shift ;;
        -p|--port) port="$2" ; shift ;;
        -s|--staging) addr="jupytera-staging" ;;
        -d|--debug) debug=true ;;
        -h|--help|-\?) show_usage ; exit ;;
        *) echo "unknown argument: $1" ; show_usage ; exit 1 ;;
    esac
    shift
done


echo "creating tunnel to ${addr}.psi.ch on https://localhost:${port}/ ..."
echo
echo "Username: ${user}"

cmd="ssh -J ${user}@hop.psi.ch ${user}@ra.psi.ch -L ${port}:${addr}.psi.ch:443"

if ${debug} ; then
  echo "DEBUG:" $cmd
else
  $cmd
fi