#!/usr/bin/env bash

set -e

function clean() {
  docker rmi $(cat $iidfile)
}

iidfile=$(mktemp -t docker-iidfile.XXXXXXXXXX)
DOCKER_BUILDKIT=1 docker build --iidfile $iidfile --build-arg BUILDKIT_DEBUG --target dev-env .

trap clean EXIT
SSH=
if [ -n "$MOUNT_SSH_AUTH_SOCK" ]; then
  SSH="-v $SSH_AUTH_SOCK:$SSH_AUTH_SOCK -e SSH_AUTH_SOCK"
fi

volumes=
if [ -n "$MOUNT_BUILDKIT_SOURCE" ]; then
  volumes="-v $(pwd):/src"
fi

config=
if [ -n "$MOUNT_BUILDKIT_DOCKER_CONFIG_PATH" ]; then
  if [ -f "$MOUNT_BUILDKIT_DOCKER_CONFIG_PATH" ]; then
    config="-v $MOUNT_BUILDKIT_DOCKER_CONFIG_PATH:/root/.docker/config.json:ro"
  fi
fi

set -x
docker run $SSH $volumes $config -it --privileged -v /tmp -e BUILDKIT_REGISTRY_MIRROR_DIR=/root/.cache/registry --rm $(cat $iidfile) ash
