#!/bin/sh
set -eu
export LC_ALL=C.UTF-8
if [ ! -e "tar1.txt" ]; then
  echo "E: tar1.txt doesn't exist -- run create-directory test first" >&2
  exit 1
fi
trap "rm -rf /tmp/debian-chroot /tmp/checkeatmydata.sh" EXIT INT TERM
cat <<SCRIPT >/tmp/checkeatmydata.sh
#!/bin/sh
set -exu
cat << EOF | diff - "\$1"/usr/bin/dpkg
#!/bin/sh
exec /usr/bin/eatmydata /usr/bin/dpkg.distrib "\\\$@"
EOF
[ -e "\$1"/usr/bin/eatmydata ]
SCRIPT
chmod +x /tmp/checkeatmydata.sh
# first four bytes: magic
elfheader='\177ELF'
# fifth byte: bits
case "$(dpkg-architecture -qDEB_HOST_ARCH_BITS)" in
  32) elfheader="$elfheader\\001" ;;
  64) elfheader="$elfheader\\002" ;;
  *)
    echo "bits not supported"
    exit 1
    ;;
esac
# sixth byte: endian
case "$(dpkg-architecture -qDEB_HOST_ARCH_ENDIAN)" in
  little) elfheader="$elfheader\\001" ;;
  big) elfheader="$elfheader\\002" ;;
  *)
    echo "endian not supported"
    exit 1
    ;;
esac
# seventh and eigth byte: elf version (1) and abi (unset)
elfheader="$elfheader\\001\\000"
{{ CMD }} --mode=root --variant=apt \
  --customize-hook=/tmp/checkeatmydata.sh \
  --essential-hook=/tmp/checkeatmydata.sh \
  --extract-hook='printf "'"$elfheader"'" | cmp --bytes=8 - "$1"/usr/bin/dpkg' \
  --hook-dir=./hooks/eatmydata \
  --customize-hook='printf "'"$elfheader"'" | cmp --bytes=8 - "$1"/usr/bin/dpkg' \
  {{ DIST }} /tmp/debian-chroot {{ MIRROR }}
tar -C /tmp/debian-chroot --one-file-system -c . | {
  tar -t
  echo ./dev/console
  echo ./dev/fd
  echo ./dev/full
  echo ./dev/null
  echo ./dev/ptmx
  echo ./dev/pts/
  echo ./dev/random
  echo ./dev/shm/
  echo ./dev/stderr
  echo ./dev/stdin
  echo ./dev/stdout
  echo ./dev/tty
  echo ./dev/urandom
  echo ./dev/zero
} | sort -u | diff -u tar1.txt -
rm /tmp/checkeatmydata.sh
rm -r /tmp/debian-chroot
