diff --git a/debian/ngcp-mediator.postinst b/debian/ngcp-mediator.postinst new file mode 100755 index 0000000..185290d --- /dev/null +++ b/debian/ngcp-mediator.postinst @@ -0,0 +1,54 @@ +#!/bin/sh +# postinst script for ngcp-mediator + +set -e + +restart_handler() { + if [ -x "/etc/init.d/mediator" ]; then + if [ -x "$(which invoke-rc.d 2>/dev/null)" ]; then + invoke-rc.d mediator restart || exit $? + else + /etc/init.d/mediator restart || exit $? + fi + fi +} + +initscript_handler() { + if [ -x "/etc/init.d/mediator" ]; then + update-rc.d mediator defaults >/dev/null + invoke-rc.d mediator start || exit $? + fi +} + +init_handler() { + # just invoke init script wrappers on ce systems since + # they do not provide ngcp-check_active and we don't + # have to handle inactive nodes + if ! [ -x "$(which ngcp-check_active 2>/dev/null)" ]; then + restart_handler + initscript_handler + else # do not restart daemon on inactive node in pro systems + if ngcp-check_active ; then + echo "Active node detected, restarting mediator" + restart_handler + else + echo "Inactive node detected, ignoring request to restart mediator" + fi + fi +} + +case "$1" in + configure) + init_handler + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +exit 0