Annotation of /trunk/installer/ncurses-gui/networking.sh
Parent Directory | Revision Log
Revision 1013 -
(hide annotations)
(download)
(as text)
Sun May 30 17:33:29 2010 UTC (14 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 8198 byte(s)
Sun May 30 17:33:29 2010 UTC (14 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 8198 byte(s)
-added ncurses-gui
1 | niro | 1013 | # $Id$ |
2 | |||
3 | # network_config() | ||
4 | # { | ||
5 | # local retval | ||
6 | # local i | ||
7 | # local highlite | ||
8 | # local tag | ||
9 | # local item | ||
10 | # | ||
11 | # retval=-1 | ||
12 | # while [ ${retval} != 1 ] && [ ${retval} != 250 ] && [ ${retval} != 0 ] | ||
13 | # do | ||
14 | # i=$(dialog \ | ||
15 | # --stdout \ | ||
16 | # --colors \ | ||
17 | # --title "Network Configuration" \ | ||
18 | # --backtitle "${TITLE}" \ | ||
19 | # --default-item "${highlite}" \ | ||
20 | # --inputmenu "Enter a Hostname" 16 70 10 \ | ||
21 | # "Hostname:" "${NETWORK_HOSTNAME}" \ | ||
22 | # "Domain:" "${NETWORK_DOMAIN}") | ||
23 | # retval="$?" | ||
24 | # highlite="$(echo "$i" | sed -e 's/^RENAMED //' -e 's/:.*//'):" | ||
25 | # # echo "DEBUG: ${highlite}" | ||
26 | # # read | ||
27 | # case ${retval} in | ||
28 | # 0) | ||
29 | # export NETWORK_HOSTNAME | ||
30 | # export NETWORK_DOMAIN | ||
31 | # ;; | ||
32 | # 3) | ||
33 | # tag=$(echo "${i}" | sed -e 's/^RENAMED //' -e 's/:.*//') | ||
34 | # item=$(echo "${i}" | sed -e 's/^.*:[ ]*//' -e 's/[ ]*$//') | ||
35 | # case "${tag}" in | ||
36 | # Hostname) NETWORK_HOSTNAME="${item}" ;; | ||
37 | # Domain) NETWORK_DOMAIN="${item}" ;; | ||
38 | # esac | ||
39 | # ;; | ||
40 | # esac | ||
41 | # done | ||
42 | # | ||
43 | # return ${retval} | ||
44 | # } | ||
45 | |||
46 | network_config() | ||
47 | { | ||
48 | dialog \ | ||
49 | --stdout \ | ||
50 | --colors \ | ||
51 | --title "Network Configuration" \ | ||
52 | --backtitle "${TITLE}" \ | ||
53 | --form "Enter a Hostname:" 10 70 0 \ | ||
54 | "Hostname:" 1 1 "${NETWORK_HOSTNAME}" 1 18 36 0 \ | ||
55 | " Domain:" 2 1 "${NETWORK_DOMAIN}" 2 18 36 0 | ||
56 | } | ||
57 | |||
58 | network_config_select() | ||
59 | { | ||
60 | dialog \ | ||
61 | --stdout \ | ||
62 | --colors \ | ||
63 | --title "Network Configuration" \ | ||
64 | --backtitle "${TITLE}" \ | ||
65 | --radiolist "Select a network type" \ | ||
66 | 10 45 3 \ | ||
67 | dhcp "DHCP based networking" on \ | ||
68 | static "IP based networking" "" \ | ||
69 | none "Disable network support" "" | ||
70 | |||
71 | return $? | ||
72 | } | ||
73 | |||
74 | # network_config_static() | ||
75 | # { | ||
76 | # local retval | ||
77 | # local i | ||
78 | # local highlite | ||
79 | # local tag | ||
80 | # local item | ||
81 | # | ||
82 | # retval=-1 | ||
83 | # while [ ${retval} != 1 ] && [ ${retval} != 250 ] && [ ${retval} != 0 ] | ||
84 | # do | ||
85 | # i=$(dialog \ | ||
86 | # --stdout \ | ||
87 | # --colors \ | ||
88 | # --title "Network Configuration" \ | ||
89 | # --backtitle "${TITLE}" \ | ||
90 | # --default-item "${highlite}" \ | ||
91 | # --inputmenu "Static network setup" 25 70 15 \ | ||
92 | # "IP:" "${NETWORK_IP}" \ | ||
93 | # "Netmask:" "${NETWORK_NETMASK}" \ | ||
94 | # "Broadcast:" "${NETWORK_BROADCAST}" \ | ||
95 | # "Gateway:" "${NETWORK_GATEWAY}" \ | ||
96 | # "Nameserver:" "${NETWORK_NAMESERVER}") | ||
97 | # retval="$?" | ||
98 | # highlite="$(echo "$i" | sed -e 's/^RENAMED //' -e 's/:.*//'):" | ||
99 | # # echo "DEBUG: ${highlite}" | ||
100 | # # read | ||
101 | # case ${retval} in | ||
102 | # 0) | ||
103 | # export NETWORK_IP | ||
104 | # export NETWORK_NETMASK | ||
105 | # export NETWORK_BROADCAST | ||
106 | # export NETWORK_GATEWAY | ||
107 | # export NETWORK_NAMESERVER | ||
108 | # ;; | ||
109 | # 3) | ||
110 | # tag=$(echo "${i}" | sed -e 's/^RENAMED //' -e 's/:.*//') | ||
111 | # item=$(echo "${i}" | sed -e 's/^.*:[ ]*//' -e 's/[ ]*$//') | ||
112 | # case "${tag}" in | ||
113 | # IP) NETWORK_IP="${item}" ;; | ||
114 | # Netmask) NETWORK_NETMASK="${item}" ;; | ||
115 | # Broadcast) NETWORK_BROADCAST="${item}" ;; | ||
116 | # Gateway) NETWORK_GATEWAY="${item}" ;; | ||
117 | # Nameserver) NETWORK_NAMESERVER="${item}" ;; | ||
118 | # esac | ||
119 | # ;; | ||
120 | # esac | ||
121 | # done | ||
122 | # | ||
123 | # return ${retval} | ||
124 | # } | ||
125 | |||
126 | network_config_static() | ||
127 | { | ||
128 | dialog \ | ||
129 | --stdout \ | ||
130 | --colors \ | ||
131 | --title "Network Configuration" \ | ||
132 | --backtitle "${TITLE}" \ | ||
133 | --form "Static network setup:" 12 70 0 \ | ||
134 | "IP-Address:" 1 1 "${NETWORK_IP}" 1 18 36 0 \ | ||
135 | " Netmask:" 2 1 "${NETWORK_NETMASK}" 2 18 36 0 \ | ||
136 | " Broadcast:" 3 1 "${NETWORK_BROADCAST}" 3 18 36 0 \ | ||
137 | " Gateway:" 4 1 "${NETWORK_GATEWAY}" 4 18 36 0 \ | ||
138 | "Nameserver:" 5 1 "${NETWORK_NAMESERVER}" 5 18 36 0 | ||
139 | } | ||
140 | |||
141 | network_select_nic() | ||
142 | { | ||
143 | local items=( $(get_hwinfo -d netcard | sed -e "s:\ :_:g") ) | ||
144 | local count=${#items[*]} | ||
145 | local i | ||
146 | |||
147 | dialog \ | ||
148 | --stdout \ | ||
149 | --colors \ | ||
150 | --title "Network Configuration" \ | ||
151 | --backtitle "${TITLE}" \ | ||
152 | --radiolist "Select a available NIC" \ | ||
153 | 10 60 ${count} \ | ||
154 | $(for (( i=0; i<count; i++ )); do echo "${items[$i]%;*} ${items[$i]#*;} $([[ ${i} -eq 0 ]] && echo on || echo off)"; done) | ||
155 | |||
156 | return $? | ||
157 | } | ||
158 | |||
159 | check_static_network_config() | ||
160 | { | ||
161 | # these are a requirement | ||
162 | if [[ -z ${NETWORK_IP} ]] | ||
163 | then | ||
164 | messagebox "Warning" "No IP-Address given!" 10 40 | ||
165 | return 1 | ||
166 | fi | ||
167 | |||
168 | if [[ -z ${NETWORK_NETMASK} ]] | ||
169 | then | ||
170 | messagebox "Warning" "No netmask given!" 10 40 | ||
171 | return 1 | ||
172 | fi | ||
173 | |||
174 | if [[ -z ${NETWORK_BROADCAST} ]] | ||
175 | then | ||
176 | messagebox "Warning" "No broadcast given!" 10 40 | ||
177 | return 1 | ||
178 | fi | ||
179 | |||
180 | return 0 | ||
181 | } | ||
182 | |||
183 | # rundialog_network_config() | ||
184 | # { | ||
185 | # network_config | ||
186 | # case $? in | ||
187 | # -1) die "Error!" ;; | ||
188 | # 255) die "aborted by user" ;; | ||
189 | # | ||
190 | # 1) | ||
191 | # rundialog_network_config | ||
192 | # ;; | ||
193 | # | ||
194 | # # vars already exported | ||
195 | # 0) | ||
196 | # if [[ -z ${NETWORK_HOSTNAME} ]] | ||
197 | # then | ||
198 | # messagebox "Warning" "No hostname given." 10 40 | ||
199 | # rundialog_network_config | ||
200 | # elif [[ -z ${NETWORK_DOMAIN} ]] | ||
201 | # then | ||
202 | # messagebox "Warning" "No domain given." 10 40 | ||
203 | # rundialog_network_config | ||
204 | # fi | ||
205 | # ;; | ||
206 | # esac | ||
207 | # | ||
208 | # debug "NETWORK_HOSTNAME='${NETWORK_HOSTNAME}'" | ||
209 | # debug "NETWORK_DOMAIN='${NETWORK_DOMAIN}'" | ||
210 | # } | ||
211 | |||
212 | rundialog_network_config() | ||
213 | { | ||
214 | local NETWORK_CONFIG | ||
215 | NETWORK_CONFIG=($(network_config)) | ||
216 | case $? in | ||
217 | -1) die "Error!" ;; | ||
218 | 255) die "aborted by user" ;; | ||
219 | |||
220 | 1) | ||
221 | rundialog_network_config | ||
222 | ;; | ||
223 | |||
224 | # vars already exported | ||
225 | 0) | ||
226 | NETWORK_HOSTNAME="${NETWORK_CONFIG[0]}" | ||
227 | NETWORK_DOMAIN="${NETWORK_CONFIG[1]}" | ||
228 | if [[ -z ${NETWORK_HOSTNAME} ]] | ||
229 | then | ||
230 | messagebox "Warning" "No hostname given." 10 40 | ||
231 | rundialog_network_config | ||
232 | elif [[ -z ${NETWORK_DOMAIN} ]] | ||
233 | then | ||
234 | messagebox "Warning" "No domain given." 10 40 | ||
235 | rundialog_network_config | ||
236 | fi | ||
237 | export NETWORK_HOSTNAME | ||
238 | export NETWORK_DOMAIN | ||
239 | ;; | ||
240 | esac | ||
241 | |||
242 | debug "NETWORK_HOSTNAME='${NETWORK_HOSTNAME}'" | ||
243 | debug "NETWORK_DOMAIN='${NETWORK_DOMAIN}'" | ||
244 | } | ||
245 | |||
246 | rundialog_network_config_select() | ||
247 | { | ||
248 | NETWORK_METHOD=$(network_config_select) | ||
249 | case $? in | ||
250 | -1) die "Error!" ;; | ||
251 | 255) die "aborted by user" ;; | ||
252 | |||
253 | 1) | ||
254 | rundialog_network_config | ||
255 | rundialog_network_config_select | ||
256 | ;; | ||
257 | |||
258 | 0) export NETWORK_METHOD | ||
259 | if [[ ${NETWORK_METHOD} = none ]] | ||
260 | then | ||
261 | export NETWORK_METHOD="none" | ||
262 | 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 | ||
263 | else | ||
264 | # want networking, run nic selection | ||
265 | rundialog_network_select_nic | ||
266 | |||
267 | if [[ ${NETWORK_METHOD} = static ]] | ||
268 | then | ||
269 | # run static config dialog | ||
270 | rundialog_network_config_static | ||
271 | fi | ||
272 | fi | ||
273 | ;; | ||
274 | esac | ||
275 | |||
276 | debug "NETWORK_METHOD='${NETWORK_METHOD}'" | ||
277 | } | ||
278 | |||
279 | # rundialog_network_config_static() | ||
280 | # { | ||
281 | # network_config_static | ||
282 | # case $? in | ||
283 | # -1) die "Error!" ;; | ||
284 | # 255) die "aborted by user" ;; | ||
285 | # | ||
286 | # 1) | ||
287 | # rundialog_network_select_nic | ||
288 | # rundialog_network_config_static | ||
289 | # ;; | ||
290 | # | ||
291 | # 0) if ! check_static_network_config | ||
292 | # then | ||
293 | # rundialog_network_config_static | ||
294 | # fi | ||
295 | # ;; | ||
296 | # esac | ||
297 | # | ||
298 | # debug "NETWORK_IP='${NETWORK_IP}'" | ||
299 | # debug "NETWORK_NETMASK='${NETWORK_NETMASK}'" | ||
300 | # debug "NETWORK_BROADCAST='${NETWORK_BROADCAST}'" | ||
301 | # debug "NETWORK_GATEWAY='${NETWORK_GATEWAY}'" | ||
302 | # debug "NETWORK_NAMESERVER='${NETWORK_NAMESERVER}'" | ||
303 | # } | ||
304 | |||
305 | rundialog_network_config_static() | ||
306 | { | ||
307 | local NETWORK_CONFIG | ||
308 | NETWORK_CONFIG=($(network_config_static)) | ||
309 | case $? in | ||
310 | -1) die "Error!" ;; | ||
311 | 255) die "aborted by user" ;; | ||
312 | |||
313 | 1) | ||
314 | rundialog_network_select_nic | ||
315 | rundialog_network_config_static | ||
316 | ;; | ||
317 | |||
318 | 0) | ||
319 | NETWORK_IP="${NETWORK_CONFIG[0]}" | ||
320 | NETWORK_NETMASK="${NETWORK_CONFIG[1]}" | ||
321 | NETWORK_BROADCAST="${NETWORK_CONFIG[2]}" | ||
322 | NETWORK_GATEWAY="${NETWORK_CONFIG[3]}" | ||
323 | NETWORK_NAMESERVER="${NETWORK_CONFIG[4]}" | ||
324 | if ! check_static_network_config | ||
325 | then | ||
326 | rundialog_network_config_static | ||
327 | fi | ||
328 | export NETWORK_IP | ||
329 | export NETWORK_NETMASK | ||
330 | export NETWORK_BROADCAST | ||
331 | export NETWORK_GATEWAY | ||
332 | export NETWORK_NAMESERVER | ||
333 | ;; | ||
334 | esac | ||
335 | |||
336 | debug "NETWORK_IP='${NETWORK_IP}'" | ||
337 | debug "NETWORK_NETMASK='${NETWORK_NETMASK}'" | ||
338 | debug "NETWORK_BROADCAST='${NETWORK_BROADCAST}'" | ||
339 | debug "NETWORK_GATEWAY='${NETWORK_GATEWAY}'" | ||
340 | debug "NETWORK_NAMESERVER='${NETWORK_NAMESERVER}'" | ||
341 | } | ||
342 | |||
343 | rundialog_network_select_nic() | ||
344 | { | ||
345 | NETWORK_NIC=$(network_select_nic) | ||
346 | case $? in | ||
347 | -1) die "Error!" ;; | ||
348 | 255) die "aborted by user" ;; | ||
349 | |||
350 | 1) | ||
351 | rundialog_network_config_select | ||
352 | rundialog_network_select_nic | ||
353 | ;; | ||
354 | |||
355 | 0) export NETWORK_NIC ;; | ||
356 | esac | ||
357 | |||
358 | debug "NETWORK_NIC='${NETWORK_NIC}'" | ||
359 | } | ||
360 | |||
361 | main_networking() | ||
362 | { | ||
363 | rundialog_network_config | ||
364 | rundialog_network_config_select | ||
365 | #rundialog_network_select_nic | ||
366 | } |
Properties
Name | Value |
---|---|
svn:keywords | Id |