#!/bin/sh

set -e

echo >&2 "dpkg-deb: $*"

case "$1" in
  (--control)
    if ! [ $# = 3 ]; then
      echo >&2 "Unexpected number of arguments to --control"
      exit 1;
    fi
    dpkg-deb.real "$@"
    if grep -q "^Architecture: i386$" "$3"/control; then
      /usr/lib/ia32-libs-tools/mangle --index < "$3"/control > "$3"/control.new
      mv "$3"/control.new "$3"/control
    fi
    ;;
  (--fsys-tarfile)
    if ! [ $# = 2 ]; then
      echo >&2 "Unexpected number of arguments to --control"
      exit 1;
    fi
    PKG=$(dpkg-deb.real --info "$2" | grep "^ Package:" | cut -d":" -f2 | cut -d" " -f2)
    VER=$(dpkg-deb.real --info "$2" | grep "^ Version:" | cut -d":" -f2 | cut -d" " -f2)
    ARCH=$(dpkg-deb.real --info "$2" | grep "^ Architecture:" | cut -d":" -f2 | cut -d" " -f2)
    if [ "x$ARCH" = "xi386" ]; then
      TMPDIR=$(mktemp -d)
      ( cd "$TMPDIR"
	cp "$2" "${PKG}_${VER}_${ARCH}.deb"
	mkdir -p debian
	cat > debian/changelog <<EOF
$PKG ($VER) UNRELEASED; urgency=low

  * ia32-apt-get conversion

 -- root <root@localhost>  $(date +"%a, %e %b %Y %X %z")
EOF
        if [ -f "/usr/lib/ia32-libs-tools/hooks/$PKG.hook" ]; then
	  cp "/usr/lib/ia32-libs-tools/hooks/$PKG.hook" debian/
	fi
        /usr/lib/ia32-libs-tools/convert $(dpkg --print-architecture) "${PKG}_${VER}_${ARCH}.deb"
	rm -rf debian/*/DEBIAN
        cd debian/*/ && tar -cf - .
      ) || { ERR=$?; rm -rf "$TMPDIR"; exit $ERR; }
      rm -rf "$TMPDIR"
    else
      dpkg-deb.real "$@"
    fi
    ;;
  (*) dpkg-deb.real "$@";;
esac
