@echo off
setlocal EnableDelayedExpansion

@set JOB_NAME=jupyter-wn

if not exist %LOCALAPPDATA%\ccb-jupyter (
  mkdir %LOCALAPPDATA%\ccb-jupyter
)

if not exist %LOCALAPPDATA%\ccb-jupyter\config.txt (
  echo Configuring first time setup
  set /p CCB_USER="Please enter CCB username: "
  echo CCB_USER=!CCB_USER!> %LOCALAPPDATA%\ccb-jupyter\config.txt
  echo CCB_HOME=/home/!CCB_USER:~0,1!/!CCB_USER!>> %LOCALAPPDATA%\ccb-jupyter\config.txt
)

for /f "delims== tokens=1,2" %%G in (%LOCALAPPDATA%\ccb-jupyter\config.txt) do set %%G=%%H

echo ***********************************
echo * Enter your password if prompted *
echo ***********************************

:: SSH port is your user ID
echo Querying CCB for your personal SSH port number ...
for /f "delims=" %%a in ('ssh %CCB_USER%@login1.molbiol.ox.ac.uk "id -u"') do set "TPORT=%%a"

:: Analyse Slurm queue to confirm that user has a Jupyter job running. Relies
::on looking for job with specific job-name %JOB_NAME%.
set "HN="
echo Querying CCB for your Slurm job running Jupyter ...
for /f "delims=" %%a in ('ssh %CCB_USER%@login1.molbiol.ox.ac.uk "squeue --me --name=%JOB_NAME% --state=R -o '%%N' --noheader"') do set "HN=%%a

if "!HN!"=="" (
    echo Failed to deduce the cluster node where your Jupyter is running.
    echo Ensure the job name is "%JOB_NAME%" exactly, and is running in queue.
    exit /b 1
)

echo ***************************************
echo *         CCB Jupyter tunnel          *
echo ***************************************
echo * Creating SSH tunnel:                *
echo * your PC -^> CCB login -^> CCB cluster *
echo * After connecting, no more feedback  *
echo * is given so assume successful.      *
echo * In web browser open:                *
echo *                                     *
echo *       +-----------------------+     *
echo *       ^| http://localhost:8888 ^|     *
echo *       +-----------------------+     *
echo *                                     *
echo ***************************************
ssh -t -L 8888:localhost:%TPORT% %CCB_USER%@login1.molbiol.ox.ac.uk ssh -N -L %TPORT%:%CCB_HOME%/jupyter/ccb-wn.sock %CCB_USER%@%HN%

endlocal
