#!/bin/bash
set -e

usage() {
cat << EOF
Usage: $0 [OPTIONS]
Build a new Python Docker image.

Options:
    -g, --gpu       Build an image with GPU support.
    -c, --use-cache Use layer cache when building a new image.
EOF
}

CACHE_FLAG="--no-cache"
DOCKERFILE="Dockerfile"
IMAGE_TAG="kaggle/python-build"

while :; do
    case "$1" in 
        -h|--help)
            usage
            exit
            ;;
        -g|--gpu)
            IMAGE_TAG="kaggle/python-gpu-build"
            DOCKERFILE="gpu.Dockerfile"
            ;;
        -c|--use-cache)
            CACHE_FLAG=""
            ;;
        -?*)
            usage
            printf 'ERROR: Unknown option: %s\n' "$1" >&2
            exit
            ;;
        *)            
            break
    esac

    shift
done

readonly CACHE_FLAG
readonly DOCKERFILE
readonly IMAGE_TAG

set -x
docker build --rm --pull $CACHE_FLAG -t "$IMAGE_TAG" -f "$DOCKERFILE" .
