#!/bin/sh

# Based on alpine's tunnel configuration script.
# Copyright (c) 2017 Kaarle Ritvanen
# Copyright (c) 2020 Ariadne Conill (extended for ifupdown-ng)

[ -z "$IF_TUNNEL_LOCAL" ] && exit 1
[ -z "$IF_TUNNEL_REMOTE" ] && exit 1
[ -z "$IF_TUNNEL_MODE" ] && exit 1

COMMAND="tunnel"
FAMILY="-4"

case "$IF_TUNNEL_MODE" in
gretap)
	COMMAND="link"
	;;
vti6|ipip6|ip6*)
	FAMILY="-6"
	;;
esac

PARAMS=$(set | sed -E '
	s/^IF_TUNNEL_([A-Z0-9_]+)=(.+)/\1\n\2/
	ta
	d
	:a
	h
	y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
	P
	g
	s/.*\n//
	')

[ "$PARAMS" ] || exit 0

case "$PHASE" in
pre-up)
	${MOCK} eval ip $FAMILY $COMMAND add $IFACE $PARAMS
	;;
post-down)
	${MOCK} ip $FAMILY $COMMAND del $IFACE
	;;
depend)
	echo "$IF_TUNNEL_DEV"
	;;
esac