#!/usr/bin/env bash
set -euo pipefail

HERE=$(cd "$(dirname "$0")" && pwd)
if [[ -f "$HERE/images/build.sh" ]]; then
  BUILD="$HERE/images/build.sh"
else
  ROOT=$(cd "$HERE/.." && pwd)
  BUILD="$ROOT/images/build.sh"
fi

usage() {
  cat <<EOF
Usage: $0 [--flavor IMAGE_ID] [OUT_DIR]

Wrapper for images/build.sh. IMAGE_ID defaults to default.
EOF
}

FLAVOR=default
OUT=""
while [[ $# -gt 0 ]]; do
  case "$1" in
    --flavor)
      if [[ $# -lt 2 ]]; then
        echo "--flavor needs an image id" >&2
        exit 1
      fi
      FLAVOR=$2
      shift 2
      ;;
    --flavor=*)
      FLAVOR=${1#*=}
      shift
      ;;
    -h | --help)
      usage
      exit 0
      ;;
    -*)
      echo "unknown option: $1" >&2
      usage >&2
      exit 1
      ;;
    *)
      if [[ -n "$OUT" ]]; then
        echo "unexpected argument: $1" >&2
        usage >&2
        exit 1
      fi
      OUT=$1
      shift
      ;;
  esac
done

if [[ ! -f "$BUILD" ]]; then
  echo "missing $BUILD" >&2
  exit 1
fi

if [[ -n "$OUT" ]]; then
  exec bash "$BUILD" "$FLAVOR" "$OUT"
fi
exec bash "$BUILD" "$FLAVOR"
