#!/bin/csh -x

echo "############################################################"
echo "#                                                          #"
echo "#            user interaction required                     #"
echo "#                                                          #"
echo "############################################################"
echo 

echo "This script creates the HPC batch scripts to run mlt on compute nodes (gpus and develgpus)."
echo "You can modify the created run scripts afterwards if needed."

while true; do
    read -p "Do you wish to create run scripts for JUWELS? [yes/no]" yn
    case $yn in
        [Yy]* ) juwels=True; break;;
        [Nn]* ) juwels=False;;
        * ) echo "Please answer yes or no.";;
   esac
done

while true; do
    read -p "Do you wish to create run script for HDFML? [yes/no]" yn
    case $yn in
        [Yy]* ) hdfml=True; break;;
        [Nn]* ) hdfml=False;;
        * ) echo "Please answer yes or no.";;
   esac
done


budget=''
while [[ $budget == '' ]]
do
 echo
 read -p "Enter project budget for --account flag: " budget 
done

email=`jutil user show -o json | grep email | cut -f2 -d':' | cut -f1 -d',' | cut -f2 -d'"'`
echo
read -p "Enter e-mail address for --mail-user (default: ${email}): " new_email

if [[ -z "$new_email" ]]; then
    new_email=$email
fi

# create HPC_logging dir
hpclogging="../HPC_logging/"
mkdir -p $hpclogging


# ordering for looping:
# "partition nGPUs timing"
if [[ $juwels == True ]]; then
  for i in "develgpus 2  02:00:00" "gpus 4 08:00:00"; do
      set -- $i

cat <<EOT > run_$1.bash
#!/bin/bash -x
#SBATCH --account=${budget}
#SBATCH --nodes=1
#SBATCH --output=${hpclogging}mlt-out.%j
#SBATCH --error=${hpclogging}/mlt-err.%j
#SBATCH --time=$3 
#SBATCH --partition=$1 
#SBATCH --gres=gpu:$2
#SBATCH --mail-type=ALL
#SBATCH --mail-user=${email}

source mlt_modules_.sh
source venv/bin/activate

timestamp=\`date +"%Y-%m-%d_%H%M-%S"\`

export PYTHONPATH=\${PWD}/venv/lib/python3.6/site-packages:\${PYTHONPATH}

srun python run.py --experiment_date=\$timestamp
EOT

  echo "Created runscript: run_$1.bash"

  done
fi

echo
echo "You have to run the the following command on a login node to download data:"
echo "          \`python run.py'"
echo
echo "Please execute the following command to check if the setup went well:"
echo "          \`sbatch run_develgpus.bash'"

