#!/usr/bin/env bash

DOCKER_DS_DONT_PULL=${DOCKER_DS_DONT_PULL:-pull}
DOCKER_DS_DIFFS=${DOCKER_DS_DIFFS:-no_diffs}

DOCKER_ENV=""

. dock-sync

if [ "$DOCKER_DS_DIFFS" != "no_diffs" ]; then
    DOCKER_ENV="-e DOCKER_DS_DIFFS=1"
fi

if [ -d "./docker/notebook" ]; then
    build-image -f notebook
    if [ -z "$DOCKER_HOST" ]
    then
        run-image notebook
    else
        sync-up
        run-image notebook
        sync-down
    fi
else
    # Script to run rappdw/docker-ds notebok against the current directory
    if [ "$DOCKER_DS_DONT_PULL" = "pull" ]; then
        docker pull rappdw/docker-ds:latest
    fi

    date_stamp=$(date "+%Y_%m_%d_%H.%M.%S")
    if [ -z "$DOCKER_HOST" ]
    then
        if [[ ! -d "./.ipynb_checkponts" ]]; then
            mkdir ./.ipynb_checkpoints
        fi
        if [[ -d "/data" ]]; then
            if [[ -d "$HOME/.aws" ]]; then
                volume_mounts="--mount type=bind,source=$(pwd),target=/home/jovyan/project -v /data:/data --mount type=bind,source=$HOME/.aws,target=/home/jovyan/.aws"
            else
                volume_mounts="--mount type=bind,source=$(pwd),target=/home/jovyan/project -v /data:/data"
            fi
        else
            if [[ -d "$HOME/.aws" ]]; then
                volume_mounts="--mount type=bind,source=$(pwd),target=/home/jovyan/project --mount type=bind,source=$HOME/.aws,target=/home/jovyan/.aws"
            else
                volume_mounts="--mount type=bind,source=$(pwd),target=/home/jovyan/project"
            fi
        fi
        echo 'docker run --init --name '$USER'_notebook_'$date_stamp' '$DOCKER_ENV' -e NOTEBOOK_MODE=lab --rm -it '$volume_mounts' -p 8888:8888 rappdw/docker-ds:latest'
        docker run --init --name $USER"_notebook_"$date_stamp $DOCKER_ENV -e NOTEBOOK_MODE=lab --rm -it $volume_mounts -p 8888:8888 rappdw/docker-ds:latest
    else
        sync-up
        echo 'docker run --init --name '$USER'_notebook_'$date_stamp' '$DOCKER_ENV' -e NOTEBOOK_MODE=lab --rm -it --mount type=bind,source=/data/workspaces/'$USER'/code/'${PWD##*/}',target=/home/jovyan/project -v /data:/data -p 8888:8888 rappdw/docker-ds:latest'
        docker run --init --name $USER"_notebook_"$date_stamp $DOCKER_ENV -e NOTEBOOK_MODE=lab --rm -it --mount type=bind,source="/data/workspaces/"$USER"/code/"${PWD##*/}",target=/home/jovyan/project" -v /data:/data -p 8888:8888 rappdw/docker-ds:latest
        sync-down
    fi

fi