2 # Filename: grml-network
3 # Purpose: simple frontend to varous connection tools
4 # Authors: (c) Klaus Knopper Mar 2004, (c) Michael Prokop <mika@grml.org>
5 # Bug-Reports: see http://grml.org/bugs/
6 # License: This file is licensed under the GPL v2.
7 # Latest change: Mit Okt 04 11:52:41 CEST 2006 [mika]
8 ################################################################################
10 PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin"
13 if [ $UID != 0 ] ; then
14 echo Error: become root before starting $0 >& 2
18 # XDIALOG_HIGH_DIALOG_COMPAT=1
19 # export XDIALOG_HIGH_DIALOG_COMPAT
22 [ "$1" = "check" ] && CHECK="yes"
32 # [ -n "$DISPLAY" ] && [ -x /usr/bin/Xdialog ] && DIALOG="Xdialog"
37 [ -r /etc/default/locale ] && . /etc/default/locale
42 while [ ! -e "$TMP.done" ]; do
44 status="`expr \( 100 - $status \) / 4 + $status`"
46 done | $DIALOG --title "$0" --gauge "$1" 8 75 0
51 touch "$TMP.done" ; wait ; rm -f "$TMP.done"
54 # Provider specific setup - menu
56 MENUINTERNET=$($DIALOG --stdout --clear --title "$PN" --menu \
57 "This script is a submenu of grml-network to set up an internet connection" 14 65 7 \
58 "TUG" "Connect via vpnc to TU Graz" \
59 "VCGraz" "Connect via pptp to VC-Graz" \
60 "Inode" "Connect via pptp to Inode" \
61 "Students" "Connect via pptp to Inode-Students" \
62 "Exit" "Exit this program")
67 if [ $MENUINTERNET == TUG ] ; then
70 if [ $MENUINTERNET == VCGraz ] ; then
73 if [ $MENUINTERNET == Inode ] ; then
76 if [ $MENUINTERNET == Students ] ; then
77 exec grml-pptp-xdsl-students
79 (1) echo "Cancel pressed." ;;
80 (255) echo "ESC pressed." ;;
85 if [ -z "$NOCHECK" -a -x /usr/bin/nmap ] ; then
86 gauge "Checking network status..." &
88 GW="`echo $(route -n | awk '/^0\.0\.0\.0/{print $2}')`"
89 GWDEV="`echo $(route -n | awk '/^0\.0\.0\.0/{print $NF}')`"
90 NMAP="$(nmap -sP --host_timeout 4000 --max_rtt_timeout 4000 $GW 2>/dev/null)"
93 echo "$NMAP" | grep -q "down" >/dev/null 2>&1 || STATUS="online"
98 if [ -n "$STATUS" ]; then
99 [ -n "$CHECK" ] && exit 0 # exit if we are already connected
100 STATUS="Online ($GWDEV)"
108 # Language-dependent Messages
111 TITLE1="Netzwerk-Setup"
112 STATUS="Status: $STATUS"
113 MESSAGE1="Bitte auswählen:"
114 MODEMSETUP="/dev/modem-Schnittstelle (neu) konfigurieren"
115 NETCARD="Netzwerkkarten (LAN/WLAN) Konfiguration"
116 WIRELESS="Wireless Zugang"
117 GPRS="Einwahl per Handy/GPRS"
118 DSL="Einwahl per DSL-Modem"
119 ISDN="Einwahl per ISDN"
120 MODEM="Einwahl per Analogmodem"
121 PROVIDER="Provider spezifische Einstellungen"
125 TITLE1="Network Setup"
126 STATUS="Current state: $STATUS"
127 MESSAGE1="Please select:"
128 MODEMSETUP="(re)configure /dev/modem device"
129 NETCARD="Configure network card (LAN/WLAN)"
130 WIRELESS="Wireless access"
131 GPRS="Dial via cellphone/GPRS"
132 DSL="Dial via DSL-adapter"
134 MODEM="Dial via analog modem"
135 PROVIDER="Provider specific setup"
140 # Shortcut description selected
141 TYPES=(netcardconfig "$NETCARD" \
142 provider "$PROVIDER" \
143 modemlink "$MODEMSETUP" \
144 gprsconnect "$GPRS" \
149 type wvdial >/dev/null 2>&1 || { unset TYPES[13]; unset TYPES[12]; }
150 type isdnconfig >/dev/null 2>&1 || { unset TYPES[11]; unset TYPES[10]; }
151 type pppoeconf >/dev/null 2>&1 || { unset TYPES[9]; unset TYPES[8]; }
152 type gprsconnect >/dev/null 2>&1 || { unset TYPES[7]; unset TYPES[6]; }
153 type modemlink >/dev/null 2>&1 || { unset TYPES[5]; unset TYPES[4]; }
157 $DIALOG --clear --cancel-label "$EXIT" --title "$TITLE1" --menu "$STATUS
159 $MESSAGE1" 18 75 10 "${TYPES[@]}" 2>"$TMP" || bailout 1
162 TYPE="${TYPE#\"}"; TYPE="${TYPE%\"}"
166 wvdial) [ -e /etc/wvdial.conf ] || wvdialconf /etc/wvdial.conf ;;
173 if [ -z "$NOCHECK" ] ; then
181 ## END OF FILE #################################################################