#!/bin/sh -efu
# Run ifup-post/ifdown-post/ifup-pre/ifdown-pre scripts for iface.

. /bin/shell-config
. /bin/shell-var
. /usr/lib/NetworkManager/nm-dispatcher-sh-functions

if nm_skip_hook "${0##*/}"; then
	exit 0
fi

# For bakward compatibility check NM_RUN_ETCNET_IFACE_SCRIPTS variable
NM_SYSCONFIG=/etc/sysconfig/NetworkManager
NM_RUN_ETCNET_IFACE_SCRIPTS="$(shell_config_get "$NM_SYSCONFIG" NM_RUN_ETCNET_IFACE_SCRIPTS)"

# For backward compatibility.
# Use old NM_RUN_ETCNET_POST variable as
# NM_RUN_ETCNET_IFACE_SCRIPTS
if [ -z "$NM_RUN_ETCNET_IFACE_SCRIPTS" ]; then
	NM_RUN_ETCNET_IFACE_SCRIPTS="$(shell_config_get "$NM_SYSCONFIG" NM_RUN_ETCNET_POST)"
fi

[ -n "$NM_RUN_ETCNET_IFACE_SCRIPTS" ] && shell_var_is_yes "$NM_RUN_ETCNET_IFACE_SCRIPTS" || exit 0

SCRIPTDIR="/etc/net/ifaces/$1"

case "$2" in
	up|down)
		SCRIPT="$SCRIPTDIR/if$2-post"
		[ -x "$SCRIPT" ] || exit 0
		$SCRIPT "$1"
		;;
	pre-up)
		SCRIPT="$SCRIPTDIR/ifup-pre"
		[ -x "$SCRIPT" ] || exit 0
		$SCRIPT "$1"
		;;
	pre-down)
		SCRIPT="$SCRIPTDIR/ifdown-pre"
		[ -x "$SCRIPT" ] || exit 0
		$SCRIPT "$1"
		;;
	*)
		exit 0
		;;
esac
