#!/usr/bin/env bash

set -eu -o pipefail

: "${BUILDX_CMD=docker buildx}"
: "${DESTDIR=./bin/release}"
: "${CACHE_FROM=}"
: "${CACHE_TO=}"

if [ -n "$CACHE_FROM" ]; then
  for cfrom in $CACHE_FROM; do
    cacheFlags+=(--set "*.cache-from=$cfrom")
  done
fi
if [ -n "$CACHE_TO" ]; then
  for cto in $CACHE_TO; do
    cacheFlags+=(--set "*.cache-to=$cto")
  done
fi

# release
(set -x ; ${BUILDX_CMD} bake "${cacheFlags[@]}" --set "*.output=$DESTDIR" release)

# wrap binaries
mv -f ./${DESTDIR}/**/* ./${DESTDIR}/
find ./${DESTDIR} -type d -empty -delete

source ./hack/hash-files
