Contents of /trunk/installer/gtk-gui/networking.sh
Parent Directory | Revision Log
Revision 772 -
(show annotations)
(download)
(as text)
Wed Sep 24 10:44:47 2008 UTC (16 years ago) by niro
File MIME type: application/x-sh
File size: 7693 byte(s)
Wed Sep 24 10:44:47 2008 UTC (16 years ago) by niro
File MIME type: application/x-sh
File size: 7693 byte(s)
-moved images into data/ directory
1 | # $Header: /home/cvsd/magellan-cvs/magellan-src/installer/gtk-gui/networking.sh,v 1.4 2008-09-24 10:44:21 niro Exp $ |
2 | |
3 | export NETWORK_CONFIG=' |
4 | <window title="Network Configuration" icon-name="gtk-network" window_position="1"> |
5 | <vbox> |
6 | <pixmap> |
7 | <input file>data/header.png</input> |
8 | </pixmap> |
9 | <hbox spacing="175"> |
10 | <pixmap> |
11 | <input file stock="gtk-network"></input> |
12 | </pixmap> |
13 | <text> |
14 | <label>"Enter Hostname"</label> |
15 | </text> |
16 | </hbox> |
17 | <frame Hostname> |
18 | <entry> |
19 | <input>echo ${NETWORK_HOSTNAME}</input> |
20 | <variable>NETWORK_HOSTNAME</variable> |
21 | </entry> |
22 | </frame> |
23 | <frame Domainname> |
24 | <entry> |
25 | <input>echo ${NETWORK_DOMAIN}</input> |
26 | <variable>NETWORK_DOMAIN</variable> |
27 | </entry> |
28 | </frame> |
29 | <hbox> |
30 | <button> |
31 | <label>back</label> |
32 | <input file stock="gtk-go-back"></input> |
33 | </button> |
34 | <button> |
35 | <label>next</label> |
36 | <input file stock="gtk-go-forward"></input> |
37 | </button> |
38 | </hbox> |
39 | </vbox> |
40 | </window> |
41 | ' |
42 | |
43 | export NETWORK_CONFIG_SELECT=' |
44 | <window title="Network Configuration" icon-name="gtk-network" window_position="1" resizable="false"> |
45 | <vbox> |
46 | <pixmap> |
47 | <input file>data/header.png</input> |
48 | </pixmap> |
49 | <hbox> |
50 | <pixmap> |
51 | <input file stock="gtk-network"></input> |
52 | </pixmap> |
53 | <text> |
54 | <label>Select a network type</label> |
55 | </text> |
56 | </hbox> |
57 | |
58 | <frame Networking via> |
59 | <radiobutton active="true"> |
60 | <label>DHCP</label> |
61 | <variable>NETWORK_DHCP</variable> |
62 | </radiobutton> |
63 | <radiobutton> |
64 | <label>Static</label> |
65 | <variable>NETWORK_STATIC</variable> |
66 | </radiobutton> |
67 | <radiobutton> |
68 | <label>None</label> |
69 | <variable>NETWORK_NONE</variable> |
70 | </radiobutton> |
71 | </frame> |
72 | |
73 | <hbox> |
74 | <button> |
75 | <label>back</label> |
76 | <input file stock="gtk-go-back"></input> |
77 | </button> |
78 | <button> |
79 | <label>next</label> |
80 | <input file stock="gtk-go-forward"></input> |
81 | </button> |
82 | </hbox> |
83 | </vbox> |
84 | </window> |
85 | ' |
86 | |
87 | export NETWORK_CONFIG_STATIC=' |
88 | <window title="Network Configuration" icon-name="gtk-network" window_position="1" resizable="false"> |
89 | <vbox> |
90 | <pixmap> |
91 | <input file>data/header.png</input> |
92 | </pixmap> |
93 | <hbox spacing="140"> |
94 | <pixmap> |
95 | <input file stock="gtk-network"></input> |
96 | </pixmap> |
97 | <text> |
98 | <label>Setup a static network</label> |
99 | </text> |
100 | </hbox> |
101 | <frame Static> |
102 | |
103 | <text xalign="0"> |
104 | <label>IP</label> |
105 | </text> |
106 | <entry> |
107 | <input>echo "${NETWORK_IP}"</input> |
108 | <variable>NETWORK_IP</variable> |
109 | </entry> |
110 | |
111 | <text xalign="0"> |
112 | <label>Netmask</label> |
113 | </text> |
114 | <entry> |
115 | <input>echo "${NETWORK_NETMASK}"</input> |
116 | <variable>NETWORK_NETMASK</variable> |
117 | </entry> |
118 | |
119 | <text xalign="0"> |
120 | <label>Broadcast</label> |
121 | </text> |
122 | <entry> |
123 | <input>echo "${NETWORK_BROADCAST}"</input> |
124 | <variable>NETWORK_BROADCAST</variable> |
125 | </entry> |
126 | |
127 | <text xalign="0"> |
128 | <label>Gateway</label> |
129 | </text> |
130 | <entry> |
131 | <input>echo "${NETWORK_GATEWAY}"</input> |
132 | <variable>NETWORK_GATEWAY</variable> |
133 | </entry> |
134 | |
135 | <text xalign="0"> |
136 | <label>Nameserver</label> |
137 | </text> |
138 | <entry> |
139 | <input>echo "${NETWORK_NAMESERVER}"</input> |
140 | <variable>NETWORK_NAMESERVER</variable> |
141 | </entry> |
142 | <hbox> |
143 | <button> |
144 | <label>back</label> |
145 | <input file stock="gtk-go-back"></input> |
146 | </button> |
147 | <button> |
148 | <label>next</label> |
149 | <input file stock="gtk-go-forward"></input> |
150 | </button> |
151 | </hbox> |
152 | </frame> |
153 | </vbox> |
154 | </window> |
155 | ' |
156 | |
157 | export NETWORK_SELECT_NIC=' |
158 | <window title="Network Configuration" icon-name="gtk-network" window_position="1" resizable="false"> |
159 | <vbox> |
160 | <pixmap> |
161 | <input file>data/header.png</input> |
162 | </pixmap> |
163 | <hbox spacing="140"> |
164 | <pixmap> |
165 | <input file stock="gtk-network"></input> |
166 | </pixmap> |
167 | <text> |
168 | <label>Select a available NIC</label> |
169 | </text> |
170 | </hbox> |
171 | |
172 | <frame Available NICs> |
173 | <table> |
174 | <label>Interface|Description</label> |
175 | <input>source hwdetection.sh; get_hwinfo -d netcard | sed "s:;:\|:g"</input> |
176 | <variable>NETWORK_NIC</variable> |
177 | </table> |
178 | </frame> |
179 | |
180 | <hbox> |
181 | <button> |
182 | <label>back</label> |
183 | <input file stock="gtk-go-back"></input> |
184 | </button> |
185 | <button> |
186 | <label>next</label> |
187 | <input file stock="gtk-go-forward"></input> |
188 | </button> |
189 | </hbox> |
190 | </vbox> |
191 | </window> |
192 | ' |
193 | |
194 | check_static_network_config() |
195 | { |
196 | # these are a requirement |
197 | if [[ -z ${NETWORK_IP} ]] |
198 | then |
199 | FAILURE_MESSAGE="No IP-Address given!" rundialog FAILURE_DIALOG |
200 | return 1 |
201 | fi |
202 | |
203 | if [[ -z ${NETWORK_NETMASK} ]] |
204 | then |
205 | FAILURE_MESSAGE="No netmask given!" rundialog FAILURE_DIALOG |
206 | return 1 |
207 | fi |
208 | |
209 | if [[ -z ${NETWORK_BROADCAST} ]] |
210 | then |
211 | FAILURE_MESSAGE="No broadcast given!" rundialog FAILURE_DIALOG |
212 | return 1 |
213 | fi |
214 | |
215 | return 0 |
216 | } |
217 | # needed to be available in the gtk-dialog |
218 | export -f check_static_network_config |
219 | |
220 | |
221 | rundialog_network_config() |
222 | { |
223 | rundialog NETWORK_CONFIG |
224 | echo "DEBUG: EXIT='${EXIT}'" |
225 | |
226 | # save given variables in env |
227 | # they will be shown as default on error |
228 | export NETWORK_HOSTNAME |
229 | export NETWORK_DOMAIN |
230 | |
231 | case ${EXIT} in |
232 | abort) |
233 | echo "Aborted by user." |
234 | exit 1 |
235 | ;; |
236 | back) |
237 | # placeholder |
238 | return 1 |
239 | ;; |
240 | next) |
241 | if [[ -z ${NETWORK_HOSTNAME} ]] |
242 | then |
243 | FAILURE_MESSAGE="No hostname given." \ |
244 | rundialog FAILURE_DIALOG |
245 | rundialog_network_config |
246 | elif [[ -z ${NETWORK_DOMAIN} ]] |
247 | then |
248 | FAILURE_MESSAGE="No domain given." \ |
249 | rundialog FAILURE_DIALOG |
250 | rundialog_network_config |
251 | fi |
252 | ;; |
253 | esac |
254 | } |
255 | |
256 | rundialog_network_config_select() |
257 | { |
258 | rundialog NETWORK_CONFIG_SELECT |
259 | echo "DEBUG: EXIT='${EXIT}'" |
260 | |
261 | echo "DEBUG: NETWORK_DHCP='${NETWORK_DHCP}'" |
262 | echo "DEBUG: NETWORK_STATIC='${NETWORK_STATIC}'" |
263 | echo "DEBUG: NETWORK_NONE='${NETWORK_NONE}'" |
264 | |
265 | case ${EXIT} in |
266 | abort) |
267 | echo "Aborted by user." |
268 | exit 1 |
269 | ;; |
270 | back) |
271 | rundialog_network_config |
272 | rundialog_network_config_select |
273 | ;; |
274 | next) |
275 | if [[ ${NETWORK_NONE} = true ]] |
276 | then |
277 | export NETWORK_METHOD="none" |
278 | 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." \ |
279 | rundialog WARNING_DIALOG |
280 | else |
281 | # want networking, run nic selection |
282 | rundialog_network_select_nic |
283 | |
284 | if [[ ${NETWORK_DHCP} = true ]] |
285 | then |
286 | export NETWORK_METHOD="dhcp" |
287 | |
288 | elif [[ ${NETWORK_STATIC} = true ]] |
289 | then |
290 | export NETWORK_METHOD="static" |
291 | # run static config dialog |
292 | rundialog_network_config_static |
293 | fi |
294 | fi |
295 | ;; |
296 | esac |
297 | } |
298 | |
299 | rundialog_network_config_static() |
300 | { |
301 | rundialog NETWORK_CONFIG_STATIC |
302 | echo "DEBUG: EXIT='${EXIT}'" |
303 | |
304 | # save given variables in env |
305 | # they will be shown as default on error |
306 | export NETWORK_IP |
307 | export NETWORK_NETMASK |
308 | export NETWORK_GATEWAY |
309 | export NETWORK_NAMESERVER |
310 | export NETWORK_BROADCAST |
311 | |
312 | case ${EXIT} in |
313 | abort) |
314 | echo "Aborted by user." |
315 | exit 1 |
316 | ;; |
317 | back) |
318 | rundialog_network_select_nic |
319 | rundialog_network_config_static |
320 | ;; |
321 | next) |
322 | if ! check_static_network_config |
323 | then |
324 | rundialog_network_config_static |
325 | fi |
326 | ;; |
327 | esac |
328 | } |
329 | |
330 | rundialog_network_select_nic() |
331 | { |
332 | rundialog NETWORK_SELECT_NIC |
333 | echo "DEBUG: EXIT='${EXIT}'" |
334 | |
335 | case ${EXIT} in |
336 | abort) |
337 | echo "Aborted by user." |
338 | exit 1 |
339 | ;; |
340 | back) |
341 | rundialog_network_config_select |
342 | rundialog_network_select_nic |
343 | ;; |
344 | next) |
345 | if [[ -z ${NETWORK_NIC} ]] |
346 | then |
347 | FAILURE_MESSAGE="No NIC selected!" \ |
348 | rundialog FAILURE_DIALOG |
349 | rundialog_network_select_nic |
350 | fi |
351 | ;; |
352 | esac |
353 | } |
354 | |
355 | main_networking() |
356 | { |
357 | rundialog_network_config |
358 | rundialog_network_config_select |
359 | #rundialog_network_select_nic |
360 | |
361 | # export all variables |
362 | export NETWORK_HOSTNAME |
363 | export NETWORK_DOMAIN |
364 | export NETWORK_NIC |
365 | export NETWORK_METHOD |
366 | export NETWORK_IP |
367 | export NETWORK_NETMASK |
368 | export NETWORK_BROADCAST |
369 | export NETWORK_GATEWAY |
370 | export NETWORK_NAMESERVER |
371 | } |