#!/bin/sh
set -eu
export LC_ALL=C.UTF-8
export SOURCE_DATE_EPOCH={{ SOURCE_DATE_EPOCH }}

trap "rm -f /tmp/debian-chroot.tar /tmp/fd" EXIT INT TERM

next_open_fd() {
  NEXT_OPEN_FD=0
  while test -h "/proc/self/fd/$NEXT_OPEN_FD"; do
    NEXT_OPEN_FD=$((NEXT_OPEN_FD + 1))
  done
  echo $NEXT_OPEN_FD
}

NEXT_OPEN_FD=$(next_open_fd)
# Something weird is going on, if too many fds are used up
[ "$NEXT_OPEN_FD" -lt 9 ]

# Open some file descriptors so that fds higher than 10 will start getting
# used. These are incompatible with "cat >&$fd" constructs as $fd must be a
# single digit integer.
for i in $(seq "$NEXT_OPEN_FD" 9); do
  eval "exec $i<> /tmp/fd"
done

NEXT_OPEN_FD=$(next_open_fd)
# All fds until 9 should now  be used up, the next available one should be 10
[ "$NEXT_OPEN_FD" -gt 9 ]
[ "$NEXT_OPEN_FD" -eq 10 ]

{{ CMD }} --variant={{ VARIANT }} {{ DIST }} /tmp/debian-chroot.tar {{ MIRROR }}

cmp ./cache/mmdebstrap-{{ DIST }}-{{ VARIANT }}.tar /tmp/debian-chroot.tar \
  || diffoscope ./cache/mmdebstrap-{{ DIST }}-{{ VARIANT }}.tar /tmp/debian-chroot.tar
