#!/bin/sh
# (C) 2008 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
# Licensed under the GPL v.2

LIBDUMA_SO=

case "$1" in
  -on)
    case "${LD_PRELOAD}" in
      *${LIBDUMA_SO}*) ;;
      *) LD_PRELOAD="${LIBDUMA_SO} ${LD_PRELOAD}";;
    esac
    shift
    ;;
  -off)
    # We use a suposedly POSIX-compliant shell: /bin/sh
    #  -> we can't use "${LD_PRELOAD//${LIBDUMA_SO}/}", it's not POSIX
    # We don't know if sed will be present on the target
    #  -> we can't use $(echo "${LD_PRELOAD}" |sed -r -e "s|${LIBDUMA_SO}||;")
    # So, iterate through LD_PRELOAD, and keep only those libs that
    # are not "${LIBDUMA_SO}"
    old_LD_PRELOAD="${LD_PRELOAD}"
    LD_PRELOAD=
    for lib in ${old_LD_PRELOAD}; do
      [ "${lib}" = "${LIBDUMA_SO}" ] || LD_PRELOAD="${LD_PRELOAD} ${lib}"
    done
    unset old_LD_PRELOAD
    shift
    ;;
  -show)
    case "${LD_PRELOAD}" in
      *${LIBDUMA_SO}*) echo "duma is enabled";;
      *)               echo "duma is disabled";;
    esac
    exit 0
    ;;
  "")
    cat <<_EOF_
Usage:
    . $0 <-on|-off|-show>
        Sets, unsets or show DUMA usage.
    $0 <executable [arg...]>
        Execute 'executable' (with arguments 'args') using DUMA.
_EOF_
    false # Don't 'exit', we could well be source'd
    ;;
  *)
    exec "$0" -on "$@"
    ;;
esac

export LD_PRELOAD
if [ -n "$1" ]; then
  exec "$@"
fi
