#!/bin/bash

# Check if docker image exists
CMD_CHECK_IMAGE="docker images -q freqtrade:latest"
REBUILD=false
DRY_RUN=false

while getopts rdh option
do
    case "${option}"
    in
    r) REBUILD=true
    ;;
    d) DRY_RUN=true
    ;;
    h) cat << EOF

Commands available :

-r    Rebuild the container
-d    Dry Run
-h    This help message
EOF
    exit 0
    ;;
    esac
done

# Ensures files exists
[ -d ~/.freqtrade ] || mkdir ~/.freqtrade
cp config.json ~/.freqtrade/
touch ~/.freqtrade/tradesv2.sqlite
touch ~/.freqtrade/tradesv2.dry_run.sqlite


echo 'Stopping container...'
docker stop freqtrade > /dev/null \
    && docker rm freqtrade > /dev/null \
    && echo 'Container stopped'


if [[ -z $($CMD_CHECK_IMAGE) || $REBUILD = true ]]; then
    echo "Building container"
    docker build -t freqtrade .
fi


# Generates Docker commands based on options
DOCKER_CMD="docker run -d \
    --name freqtrade \
    -v ~/.freqtrade/config.json:/freqtrade/config.json"

if [[ $DRY_RUN = true ]]; then
    DOCKER_CMD="$DOCKER_CMD \
    -v ~/.freqtrade/tradesv2.dry_run.sqlite:/freqtrade/tradesv2.dry_run.sqlite"
else
    DOCKER_CMD="$DOCKER_CMD \
    -v ~/.freqtrade/tradesv2.sqlite:/freqtrade/tradesv2.sqlite"
fi

DOCKER_CMD="$DOCKER_CMD freqtrade"

echo 'Starting container'
eval $DOCKER_CMD \ > /dev/null \
    && echo 'Container ready' \
    || echo 'Problem starting container'

exit 0

docker run -d \
    --name freqtrade \
    -v ~/.freqtrade/config.json:/freqtrade/config.json \
    -v ~/.freqtrade/tradesv2.dry_run.sqlite:/freqtrade/tradesv2.dry_run.sqlite \
    freqtrade
