#!/bin/sh

INTERFACES=""
BONDOPTS=""
for var in $(env | grep '^IF_BOND_'); do
	val="${var#*=}"
	opt="${var%%=*}"
	if [ "$opt" == "IF_BOND_PORTS" ]; then
		case "$val" in
		none)
			INTERFACES=""
			;;
		*)
			INTERFACES="$val"
			;;
		esac
		continue
	fi
	opt="$(tr '[A-Z]' '[a-z]' <<< ${opt#IF_BOND_})"
	BONDOPTS+=" $opt"
	[ -n "$val" ] && BONDOPTS+=" $val"
done

[ -n "$INTERFACES" ] || exit 0

ip link add $IFACE type bond ${BONDOPTS} || exit 1
for IF in $INTERFACES; do
	if ! grep -q $IF /proc/net/dev; then
		echo "Error: interface '$IF' does not exist!"
		ip link del $IFACE
		exit 1
	fi
	ip link set $IF master $IFACE
	ip link set $IF up
done

exit 0
