#!/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