-#!/bin/bash
-# Filename: grml-network
-# Purpose: simple frontend to varous connection tools
-# Authors: (c) Klaus Knopper Mar 2004, (c) Michael Prokop <mika@grml.org>
-# Bug-Reports: see http://grml.org/bugs/
-# License: This file is licensed under the GPL v2.
-# Latest change: Mit Okt 04 11:52:41 CEST 2006 [mika]
-################################################################################
-
-PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin"
-export PATH
-
-if [ $UID != 0 ] ; then
- echo Error: become root before starting $0 >& 2
- exit 100
-fi
-
-# XDIALOG_HIGH_DIALOG_COMPAT=1
-# export XDIALOG_HIGH_DIALOG_COMPAT
-
-CHECK=""
-[ "$1" = "check" ] && CHECK="yes"
-
-TMP=$(mktemp)
-
-bailout(){
- rm -f "$TMP"
- exit $1
-}
-
-DIALOG="dialog"
-# [ -n "$DISPLAY" ] && [ -x /usr/bin/Xdialog ] && DIALOG="Xdialog"
-
-trap bailout 1 2 3 15
-
-# LANGUAGE etc.
-[ -r /etc/default/locale ] && . /etc/default/locale
-
-gauge(){
- rm -f "$TMP.done"
- status=0
- while [ ! -e "$TMP.done" ]; do
- echo "$status"
- status="`expr \( 100 - $status \) / 4 + $status`"
- sleep 1
- done | $DIALOG --title "$0" --gauge "$1" 8 75 0
-}
-
-# Stop status bar
-killgauge(){
- touch "$TMP.done" ; wait ; rm -f "$TMP.done"
-}
-
-# Provider specific setup - menu
-provider () {
- MENUINTERNET=$($DIALOG --stdout --clear --title "$PN" --menu \
- "This script is a submenu of grml-network to set up an internet connection" 14 65 7 \
- "TUG" "Connect via vpnc to TU Graz" \
- "VCGraz" "Connect via pptp to VC-Graz" \
- "Inode" "Connect via pptp to Inode" \
- "Students" "Connect via pptp to Inode-Students" \
- "Exit" "Exit this program")
-
- retval=$?
- case $retval in
- (0)
- if [ $MENUINTERNET == TUG ] ; then
- exec grml-vpnc-tugraz
- fi
- if [ $MENUINTERNET == VCGraz ] ; then
- exec grml-pptp-vcgraz
- fi
- if [ $MENUINTERNET == Inode ] ; then
- exec grml-pptp-inode
- fi
- if [ $MENUINTERNET == Students ] ; then
- exec grml-pptp-xdsl-students
- fi ;;
- (1) echo "Cancel pressed." ;;
- (255) echo "ESC pressed." ;;
- esac
-}
-
-main(){
- if [ -z "$NOCHECK" -a -x /usr/bin/nmap ] ; then
- gauge "Checking network status..." &
- STATUS=""
- GW="`echo $(route -n | awk '/^0\.0\.0\.0/{print $2}')`"
- GWDEV="`echo $(route -n | awk '/^0\.0\.0\.0/{print $NF}')`"
- NMAP="$(nmap -sP --host_timeout 4000 --max_rtt_timeout 4000 $GW 2>/dev/null)"
-
- if [ "$?" = 0 ]; then
- echo "$NMAP" | grep -q "down" >/dev/null 2>&1 || STATUS="online"
- fi
-
- killgauge
-
- if [ -n "$STATUS" ]; then
- [ -n "$CHECK" ] && exit 0 # exit if we are already connected
- STATUS="Online ($GWDEV)"
- else
- STATUS="Offline"
- fi
- else
- STATUS="Unknown"
- fi
-
-# Language-dependent Messages
-case "$LANGUAGE" in
- de*|at*|ch*)
- TITLE1="Netzwerk-Setup"
- STATUS="Status: $STATUS"
- MESSAGE1="Bitte auswählen:"
- MODEMSETUP="/dev/modem-Schnittstelle (neu) konfigurieren"
- NETCARD="Netzwerkkarten (LAN/WLAN) Konfiguration"
- WIRELESS="Wireless Zugang"
- GPRS="Einwahl per Handy/GPRS"
- DSL="Einwahl per DSL-Modem"
- ISDN="Einwahl per ISDN"
- MODEM="Einwahl per Analogmodem"
- PROVIDER="Provider spezifische Einstellungen"
- EXIT="Beenden"
- ;;
- *)
- TITLE1="Network Setup"
- STATUS="Current state: $STATUS"
- MESSAGE1="Please select:"
- MODEMSETUP="(re)configure /dev/modem device"
- NETCARD="Configure network card (LAN/WLAN)"
- WIRELESS="Wireless access"
- GPRS="Dial via cellphone/GPRS"
- DSL="Dial via DSL-adapter"
- ISDN="Dial via ISDN"
- MODEM="Dial via analog modem"
- PROVIDER="Provider specific setup"
- EXIT="Quit"
- ;;
-esac
-
-# Shortcut description selected
-TYPES=(netcardconfig "$NETCARD" \
-provider "$PROVIDER" \
-modemlink "$MODEMSETUP" \
-gprsconnect "$GPRS" \
-pppoeconf "$DSL" \
-isdnconfig "$ISDN" \
-wvdial "$MODEM")
-
-type wvdial >/dev/null 2>&1 || { unset TYPES[13]; unset TYPES[12]; }
-type isdnconfig >/dev/null 2>&1 || { unset TYPES[11]; unset TYPES[10]; }
-type pppoeconf >/dev/null 2>&1 || { unset TYPES[9]; unset TYPES[8]; }
-type gprsconnect >/dev/null 2>&1 || { unset TYPES[7]; unset TYPES[6]; }
-type modemlink >/dev/null 2>&1 || { unset TYPES[5]; unset TYPES[4]; }
-
-rm -f "$TMP"
-
-$DIALOG --clear --cancel-label "$EXIT" --title "$TITLE1" --menu "$STATUS
-
-$MESSAGE1" 18 75 10 "${TYPES[@]}" 2>"$TMP" || bailout 1
-
-read TYPE <"$TMP"
-TYPE="${TYPE#\"}"; TYPE="${TYPE%\"}"
-rm -f "$TMP"
-
-case "$TYPE" in
- wvdial) [ -e /etc/wvdial.conf ] || wvdialconf /etc/wvdial.conf ;;
-esac
-
-eval $TYPE
-return "$?"
-}
-
-if [ -z "$NOCHECK" ] ; then
- while true; do
- main
- done
-else
- main
-fi
-
-## END OF FILE #################################################################