#!/bin/sh

# Based on /usr/share/initramfs-tools/hooks/zz-busybox from busybox Debian
# package

# This hook copies toybox binary into the initramfs directory
# and creates all necessary links to it.
# It should be placed last into the hooks directory, in order to
# not overwrite commands which are provided by other means.

set -e

case "${1:-}" in
  prereqs)  echo ""; exit 0;;
esac

TB_BIN=/bin/toybox

[ n = "$TOYBOX" ] && exit 0

[ -r /usr/share/initramfs-tools/hook-functions ] || exit 0
. /usr/share/initramfs-tools/hook-functions

if [ -f $DESTDIR/bin/sh ] && cmp -s $DESTDIR/bin/sh $TB_BIN ; then
  # initramfs copies toybox into /bin/sh, undo this
  rm -f $DESTDIR/bin/sh
fi
rm -f $DESTDIR/bin/toybox	# for compatibility with old initramfs
copy_exec $TB_BIN /bin/toybox

for alias in $($TB_BIN --long); do
  alias="${alias#/}"
  case "$alias" in
    # strip leading /usr, we don't use it
    usr/*) alias="${alias#usr/}" ;;
    */*) ;;
    *) alias="bin/$alias" ;;  # make it into /bin
  esac

  [ -e "$DESTDIR/$alias" ] || \
    ln "$DESTDIR/usr/bin/toybox" "$DESTDIR/$alias"
done
