#!/usr/bin/env bash
# Construye (si hace falta) y abre una shell en el contenedor del curso.
# El directorio actual se monta en /work.
#
#   run.sh               abre una shell
#   run.sh make test     ejecuta un comando dentro del contenedor
#   run.sh --rebuild     reconstruye la imagen
set -euo pipefail

IMAGE=poo
HERE="$(cd "$(dirname "$0")" && pwd)"

if [ "${1:-}" = "--rebuild" ]; then
    docker build -t "$IMAGE" "$HERE"
    shift
elif ! docker image inspect "$IMAGE" >/dev/null 2>&1; then
    docker build -t "$IMAGE" "$HERE"
fi

[ $# -eq 0 ] && set -- bash
exec docker run --rm -it --name "poo-$$" -v "$PWD":/work -w /work "$IMAGE" "$@"
