Annotation of /trunk/installer/gtk-gui/networking.sh
Parent Directory | Revision Log
Revision 1011 -
(hide annotations)
(download)
(as text)
Sun May 30 17:32:56 2010 UTC (14 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 7549 byte(s)
Sun May 30 17:32:56 2010 UTC (14 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 7549 byte(s)
-fixed header -make use of debug() function
1 | niro | 1011 | # $Id$ |
2 | niro | 719 | |
3 | export NETWORK_CONFIG=' | ||
4 | <window title="Network Configuration" icon-name="gtk-network" window_position="1"> | ||
5 | <vbox> | ||
6 | <pixmap> | ||
7 | niro | 772 | <input file>data/header.png</input> |
8 | niro | 719 | </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 | niro | 772 | <input file>data/header.png</input> |
48 | niro | 719 | </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 | niro | 772 | <input file>data/header.png</input> |
92 | niro | 719 | </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 | niro | 765 | <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 | niro | 719 | <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 | niro | 772 | <input file>data/header.png</input> |
162 | niro | 719 | </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 | niro | 773 | <input>source include/hwdetection.sh; get_hwinfo -d netcard | sed "s:;:\|:g"</input> |
176 | niro | 719 | <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 | niro | 765 | if [[ -z ${NETWORK_BROADCAST} ]] |
210 | then | ||
211 | FAILURE_MESSAGE="No broadcast given!" rundialog FAILURE_DIALOG | ||
212 | return 1 | ||
213 | fi | ||
214 | |||
215 | niro | 719 | 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 | niro | 1011 | debug "EXIT='${EXIT}'" |
225 | niro | 719 | |
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 | niro | 1011 | debug "EXIT='${EXIT}'" |
260 | niro | 719 | |
261 | niro | 1011 | debug "NETWORK_DHCP='${NETWORK_DHCP}'" |
262 | debug "NETWORK_STATIC='${NETWORK_STATIC}'" | ||
263 | debug "NETWORK_NONE='${NETWORK_NONE}'" | ||
264 | niro | 719 | |
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 | niro | 1011 | debug "EXIT='${EXIT}'" |
303 | niro | 719 | |
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 | niro | 765 | export NETWORK_BROADCAST |
311 | niro | 719 | |
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 | niro | 1011 | debug "EXIT='${EXIT}'" |
334 | niro | 719 | |
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 | niro | 762 | rundialog_network_select_nic |
350 | niro | 719 | 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 | niro | 765 | export NETWORK_BROADCAST |
369 | niro | 719 | export NETWORK_GATEWAY |
370 | export NETWORK_NAMESERVER | ||
371 | } |