#!/usr/local/bin/cbsd
MYARG="mode"
MYOPTARG="vhid advskew pass ip interface state inter"
MYDESC="Enable CARP configuration"
ADDHELP="mode - set,show,unset,update,getip\n\
interface - physical iface or 'auto'\n\
advskew - advertisements value, e.g. 100\n\
pass - passwordphrase\n\
vhid - ID, e.g 1\n\
ip - virtual ip, e.g: 192.168.1.200/24\n\
state - master,backup\n"

. ${subrdir}/nc.subr

. ${cbsdinit}

. ${initenv}
. ${subrdir}/carp.subr

### MAIN
carp_init

if [ "${mode}" = "show" ]; then
	show=1
else
	show=0
fi

case "${mode}" in
	init)
		# just quit: carp_init already done
		exit 0
		;;
	set|show)
		check_vhid
		check_interface
		carp_set
		;;
	unset)
		check_vhid
		check_interface
		carp_unset
		;;
	update)
		check_vhid
		check_interface
		carp_update
		;;
	getip)
		check_vhid || exit 2
		check_interface || exit 3
		# return err=1 when vhid is set
		get_ip4_by_vhid ${vhid}
		exit $?
		;;
	*)
		err 1 "${N1_COLOR}Unknown mode: ${N2_COLOR}${mode}${N0_COLOR}"
		;;
esac
