#!/usr/bin/sh

CMD=/usr/libexec/diskdrake

child=

restore_udev_rules() {
  rm -f /run/udev/rules.d/90-drakdisk-inhibit-udisks.rules
  udevadm control --reload
  udevadm trigger --subsystem-match=block
}

handle_signal() {
  if [ "x$child" != "x" ] ; then
    kill -s TERM $child
    wait $child
  fi
}

if ps -C udisksd > /dev/null ; then
  set -e
  mkdir -p /run/udev/rules.d
  trap handle_signal HUP INT QUIT ILL ABRT FPE SEGV PIPE ALRM TERM BUS
  trap restore_udev_rules EXIT
  echo 'SUBSYSTEM=="block", ENV{UDISKS_IGNORE}="1"' > /run/udev/rules.d/90-drakdisk-inhibit-udisks.rules
  udevadm control --reload
  udevadm trigger --subsystem-match=block
  $CMD "$@" & child=$!
  wait $child
else
  exec $CMD "$@"
fi
