#!/bin/sh

[ "_$VMNET_HOST_IP" = _ ] && VMNET_HOST_IP="192.168.254.1"
[ "_$VMNET_NETMASK" = _ ] && VMNET_NETMASK="255.255.255.0"

host_ip=$VMNET_HOST_IP
netmask=$VMNET_NETMASK
title="VMware network options"

get_network_settings() {
    bridged="NO"
    /usr/bin/dialog --title "$title" --clear --yesno \
"\n"\
"Do you want to use netgraph bridging?\n"\
    10 50
    if [ $? -eq 0 ]; then
	bridged="YES"
	result=`/usr/bin/dialog --title "$title" --clear --inputbox \
"\n"\
"To which interface would you\n"\
"like to tie the bridge?:"\
	10 50 "" \
	2>&1 > /dev/tty`
	case $? in
	0)
	    if [ -z "$result" ]; then
		return 1
	    fi
	    bdg_interface=$result
	    ;;
        1)
	    return 1
	    ;;
	esac
	host_ip=192.168.0.1
	netmask=255.255.255.0
    else

    result=`/usr/bin/dialog --title "$title" --clear --inputbox \
"\n"\
"What will be the IP address of your host\n"\
"on your private network?:"\
    10 50 $host_ip \
    2>&1 >/dev/tty `

    case $? in
    0)
	if [ -z "$result" ]; then
	    return 1
	fi
	host_ip=$result
	;;
    1)	
	return 1
	;;
    esac

    result=`/usr/bin/dialog --title "$title" --clear --inputbox \
"\n"\
"What will be the netmask of your private\n"\
"network?:"\
    10 50 $netmask \
    2>&1 >/dev/tty `

    case $? in
    0)
	if [ -z "$result" ]; then
	    return 1
	fi
	netmask=$result
	;;
    1)	
	return 1
	;;
    esac
    return 0;
    fi
}

do_network() {
    while true; do
	get_network_settings

	if [ "X$bridged" != "XYES" ]; then
	/usr/bin/dialog --title "Confirmation" --clear --yesno \
"\n"\
"Are the following options correct?\n\n"\
"Configuration: host only\n"\
"IP address:    $host_ip\n"\
"Netmask:       $netmask\n"\
	10 50
	[ $? -eq 0 ] && return 0
	else
		/usr/bin/dialog --title "Confirmation" --clear --yesno \
"\n"\
"Are the following options correct?\n\n"\
"Configuration: bridged\n"\
"Interface:     $bdg_interface\n"\
		10 50
		[ $? -eq 0 ] && return 0
	fi

	/usr/bin/dialog --title "Confirmation" --clear --yesno \
"\n"\
"Do you want to edit network options again?\n"\
	10 50
	[ $? -eq 0 ] && continue

	/usr/bin/dialog --title "Confirmation" --clear --yesno \
"\n"\
"Do you want to continue without networking?\n"\
	10 50
	[ $? -eq 0 ] && return 1

	host_ip=$VMNET_HOST_IP
	netmask=$VMNET_NETMASK

	return 0;
    done
}

networking=0
if [ _$BATCH = _ ]; then
    do_network

    if [ $? -eq 0 ]; then
	networking=1
	if [ X$bridged = XYES ]; then
	    /usr/bin/dialog --title "$title" --infobox \
"\n"\
"The following options will be used.\n\n"\
"Configuration: bridged\n"\
"Interface:     $bdg_interface\n"\
	    10 50
	else
	/usr/bin/dialog --title "$title" --infobox \
"\n"\
"The following options will be used.\n\n"\
"Configuration: host only\n"\
"IP address:    $host_ip\n"\
"Netmask:       $netmask\n"\
	10 50
	fi
    fi
else #BATCH
    [ -f ${WRKDIR}/Makefile.inc.net ] && exit 0
fi #BATCH

(
exec > ${WRKDIR}/Makefile.inc.net

echo '#' `date`
echo VMNET_BRIDGED=$bridged
echo VMNET_BRIDGED_INTERFACE=$bdg_interface
echo VMNET_HOST_IP=$host_ip
echo VMNET_NETMASK=$netmask
echo VMNET_NETWORKING=$networking
)

exit 0
