Magellan Linux

Annotation of /trunk/installer/ncurses-gui/networking.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1035 - (hide annotations) (download) (as text)
Sun May 30 18:37:54 2010 UTC (13 years, 11 months ago) by niro
File MIME type: application/x-sh
File size: 4617 byte(s)
-code cleanup
1 niro 1013 # $Id$
2    
3     network_config()
4     {
5     dialog \
6     --stdout \
7     --colors \
8     --title "Network Configuration" \
9     --backtitle "${TITLE}" \
10     --form "Enter a Hostname:" 10 70 0 \
11     "Hostname:" 1 1 "${NETWORK_HOSTNAME}" 1 18 36 0 \
12     " Domain:" 2 1 "${NETWORK_DOMAIN}" 2 18 36 0
13     }
14    
15     network_config_select()
16     {
17     dialog \
18     --stdout \
19     --colors \
20     --title "Network Configuration" \
21     --backtitle "${TITLE}" \
22     --radiolist "Select a network type" \
23     10 45 3 \
24     dhcp "DHCP based networking" on \
25     static "IP based networking" "" \
26     none "Disable network support" ""
27    
28     return $?
29     }
30    
31     network_config_static()
32     {
33     dialog \
34     --stdout \
35     --colors \
36     --title "Network Configuration" \
37     --backtitle "${TITLE}" \
38     --form "Static network setup:" 12 70 0 \
39     "IP-Address:" 1 1 "${NETWORK_IP}" 1 18 36 0 \
40     " Netmask:" 2 1 "${NETWORK_NETMASK}" 2 18 36 0 \
41     " Broadcast:" 3 1 "${NETWORK_BROADCAST}" 3 18 36 0 \
42     " Gateway:" 4 1 "${NETWORK_GATEWAY}" 4 18 36 0 \
43     "Nameserver:" 5 1 "${NETWORK_NAMESERVER}" 5 18 36 0
44     }
45    
46     network_select_nic()
47     {
48     local items=( $(get_hwinfo -d netcard | sed -e "s:\ :_:g") )
49     local count=${#items[*]}
50     local i
51    
52     dialog \
53     --stdout \
54     --colors \
55     --title "Network Configuration" \
56     --backtitle "${TITLE}" \
57     --radiolist "Select a available NIC" \
58     10 60 ${count} \
59     $(for (( i=0; i<count; i++ )); do echo "${items[$i]%;*} ${items[$i]#*;} $([[ ${i} -eq 0 ]] && echo on || echo off)"; done)
60    
61     return $?
62     }
63    
64     check_static_network_config()
65     {
66     # these are a requirement
67     if [[ -z ${NETWORK_IP} ]]
68     then
69     messagebox "Warning" "No IP-Address given!" 10 40
70     return 1
71     fi
72    
73     if [[ -z ${NETWORK_NETMASK} ]]
74     then
75     messagebox "Warning" "No netmask given!" 10 40
76     return 1
77     fi
78    
79     if [[ -z ${NETWORK_BROADCAST} ]]
80     then
81     messagebox "Warning" "No broadcast given!" 10 40
82     return 1
83     fi
84    
85     return 0
86     }
87    
88     rundialog_network_config()
89     {
90     local NETWORK_CONFIG
91     NETWORK_CONFIG=($(network_config))
92     case $? in
93     -1) die "Error!" ;;
94     255) die "aborted by user" ;;
95    
96     1)
97     rundialog_network_config
98     ;;
99    
100     # vars already exported
101     0)
102     NETWORK_HOSTNAME="${NETWORK_CONFIG[0]}"
103     NETWORK_DOMAIN="${NETWORK_CONFIG[1]}"
104     if [[ -z ${NETWORK_HOSTNAME} ]]
105     then
106     messagebox "Warning" "No hostname given." 10 40
107     rundialog_network_config
108     elif [[ -z ${NETWORK_DOMAIN} ]]
109     then
110     messagebox "Warning" "No domain given." 10 40
111     rundialog_network_config
112     fi
113     export NETWORK_HOSTNAME
114     export NETWORK_DOMAIN
115     ;;
116     esac
117    
118     debug "NETWORK_HOSTNAME='${NETWORK_HOSTNAME}'"
119     debug "NETWORK_DOMAIN='${NETWORK_DOMAIN}'"
120     }
121    
122     rundialog_network_config_select()
123     {
124     NETWORK_METHOD=$(network_config_select)
125     case $? in
126     -1) die "Error!" ;;
127     255) die "aborted by user" ;;
128    
129     1)
130     rundialog_network_config
131     rundialog_network_config_select
132     ;;
133    
134     0) export NETWORK_METHOD
135     if [[ ${NETWORK_METHOD} = none ]]
136     then
137     export NETWORK_METHOD="none"
138     messagebox "Warning" "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." 10 70
139     else
140     # want networking, run nic selection
141     rundialog_network_select_nic
142    
143     if [[ ${NETWORK_METHOD} = static ]]
144     then
145     # run static config dialog
146     rundialog_network_config_static
147     fi
148     fi
149     ;;
150     esac
151    
152     debug "NETWORK_METHOD='${NETWORK_METHOD}'"
153     }
154    
155     rundialog_network_config_static()
156     {
157     local NETWORK_CONFIG
158     NETWORK_CONFIG=($(network_config_static))
159     case $? in
160     -1) die "Error!" ;;
161     255) die "aborted by user" ;;
162    
163     1)
164     rundialog_network_select_nic
165     rundialog_network_config_static
166     ;;
167    
168     0)
169     NETWORK_IP="${NETWORK_CONFIG[0]}"
170     NETWORK_NETMASK="${NETWORK_CONFIG[1]}"
171     NETWORK_BROADCAST="${NETWORK_CONFIG[2]}"
172     NETWORK_GATEWAY="${NETWORK_CONFIG[3]}"
173     NETWORK_NAMESERVER="${NETWORK_CONFIG[4]}"
174     if ! check_static_network_config
175     then
176     rundialog_network_config_static
177     fi
178     export NETWORK_IP
179     export NETWORK_NETMASK
180     export NETWORK_BROADCAST
181     export NETWORK_GATEWAY
182     export NETWORK_NAMESERVER
183     ;;
184     esac
185    
186     debug "NETWORK_IP='${NETWORK_IP}'"
187     debug "NETWORK_NETMASK='${NETWORK_NETMASK}'"
188     debug "NETWORK_BROADCAST='${NETWORK_BROADCAST}'"
189     debug "NETWORK_GATEWAY='${NETWORK_GATEWAY}'"
190     debug "NETWORK_NAMESERVER='${NETWORK_NAMESERVER}'"
191     }
192    
193     rundialog_network_select_nic()
194     {
195     NETWORK_NIC=$(network_select_nic)
196     case $? in
197     -1) die "Error!" ;;
198     255) die "aborted by user" ;;
199    
200     1)
201     rundialog_network_config_select
202     rundialog_network_select_nic
203     ;;
204    
205     0) export NETWORK_NIC ;;
206     esac
207    
208     debug "NETWORK_NIC='${NETWORK_NIC}'"
209     }
210    
211     main_networking()
212     {
213     rundialog_network_config
214     rundialog_network_config_select
215     }

Properties

Name Value
svn:keywords Id