source include/hwdetection.sh; get_hwinfo -d netcard | sed "s:;:\|:g"
NETWORK_NIC
'
check_static_network_config()
{
# these are a requirement
if [[ -z ${NETWORK_IP} ]]
then
FAILURE_MESSAGE="No IP-Address given!" rundialog FAILURE_DIALOG
return 1
fi
if [[ -z ${NETWORK_NETMASK} ]]
then
FAILURE_MESSAGE="No netmask given!" rundialog FAILURE_DIALOG
return 1
fi
if [[ -z ${NETWORK_BROADCAST} ]]
then
FAILURE_MESSAGE="No broadcast given!" rundialog FAILURE_DIALOG
return 1
fi
return 0
}
# needed to be available in the gtk-dialog
export -f check_static_network_config
rundialog_network_config()
{
rundialog NETWORK_CONFIG
echo "DEBUG: EXIT='${EXIT}'"
# save given variables in env
# they will be shown as default on error
export NETWORK_HOSTNAME
export NETWORK_DOMAIN
case ${EXIT} in
abort)
echo "Aborted by user."
exit 1
;;
back)
# placeholder
return 1
;;
next)
if [[ -z ${NETWORK_HOSTNAME} ]]
then
FAILURE_MESSAGE="No hostname given." \
rundialog FAILURE_DIALOG
rundialog_network_config
elif [[ -z ${NETWORK_DOMAIN} ]]
then
FAILURE_MESSAGE="No domain given." \
rundialog FAILURE_DIALOG
rundialog_network_config
fi
;;
esac
}
rundialog_network_config_select()
{
rundialog NETWORK_CONFIG_SELECT
echo "DEBUG: EXIT='${EXIT}'"
echo "DEBUG: NETWORK_DHCP='${NETWORK_DHCP}'"
echo "DEBUG: NETWORK_STATIC='${NETWORK_STATIC}'"
echo "DEBUG: NETWORK_NONE='${NETWORK_NONE}'"
case ${EXIT} in
abort)
echo "Aborted by user."
exit 1
;;
back)
rundialog_network_config
rundialog_network_config_select
;;
next)
if [[ ${NETWORK_NONE} = true ]]
then
export NETWORK_METHOD="none"
WARNING_MESSAGE="Magellan needs network support for further installations.\nOnly a very basic system get installed.\nTo use more packages, you have to setup your networking manually." \
rundialog WARNING_DIALOG
else
# want networking, run nic selection
rundialog_network_select_nic
if [[ ${NETWORK_DHCP} = true ]]
then
export NETWORK_METHOD="dhcp"
elif [[ ${NETWORK_STATIC} = true ]]
then
export NETWORK_METHOD="static"
# run static config dialog
rundialog_network_config_static
fi
fi
;;
esac
}
rundialog_network_config_static()
{
rundialog NETWORK_CONFIG_STATIC
echo "DEBUG: EXIT='${EXIT}'"
# save given variables in env
# they will be shown as default on error
export NETWORK_IP
export NETWORK_NETMASK
export NETWORK_GATEWAY
export NETWORK_NAMESERVER
export NETWORK_BROADCAST
case ${EXIT} in
abort)
echo "Aborted by user."
exit 1
;;
back)
rundialog_network_select_nic
rundialog_network_config_static
;;
next)
if ! check_static_network_config
then
rundialog_network_config_static
fi
;;
esac
}
rundialog_network_select_nic()
{
rundialog NETWORK_SELECT_NIC
echo "DEBUG: EXIT='${EXIT}'"
case ${EXIT} in
abort)
echo "Aborted by user."
exit 1
;;
back)
rundialog_network_config_select
rundialog_network_select_nic
;;
next)
if [[ -z ${NETWORK_NIC} ]]
then
FAILURE_MESSAGE="No NIC selected!" \
rundialog FAILURE_DIALOG
rundialog_network_select_nic
fi
;;
esac
}
main_networking()
{
rundialog_network_config
rundialog_network_config_select
#rundialog_network_select_nic
# export all variables
export NETWORK_HOSTNAME
export NETWORK_DOMAIN
export NETWORK_NIC
export NETWORK_METHOD
export NETWORK_IP
export NETWORK_NETMASK
export NETWORK_BROADCAST
export NETWORK_GATEWAY
export NETWORK_NAMESERVER
}