Annotation of /trunk/installer/gtk-gui/networking.sh
Parent Directory | Revision Log
Revision 719 -
(hide annotations)
(download)
(as text)
Fri Apr 18 20:40:28 2008 UTC (16 years, 5 months ago) by niro
File MIME type: application/x-sh
File size: 7292 byte(s)
Fri Apr 18 20:40:28 2008 UTC (16 years, 5 months ago) by niro
File MIME type: application/x-sh
File size: 7292 byte(s)
-first import
1 | niro | 719 | # $Header: /home/cvsd/magellan-cvs/magellan-src/installer/gtk-gui/networking.sh,v 1.1 2008-04-18 20:40:28 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>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>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>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>Gateway</label> | ||
121 | </text> | ||
122 | <entry> | ||
123 | <input>echo "${NETWORK_GATEWAY}"</input> | ||
124 | <variable>NETWORK_GATEWAY</variable> | ||
125 | </entry> | ||
126 | |||
127 | <text xalign="0"> | ||
128 | <label>Nameserver</label> | ||
129 | </text> | ||
130 | <entry> | ||
131 | <input>echo "${NETWORK_NAMESERVER}"</input> | ||
132 | <variable>NETWORK_NAMESERVER</variable> | ||
133 | </entry> | ||
134 | <hbox> | ||
135 | <button> | ||
136 | <label>back</label> | ||
137 | <input file stock="gtk-go-back"></input> | ||
138 | </button> | ||
139 | <button> | ||
140 | <label>next</label> | ||
141 | <input file stock="gtk-go-forward"></input> | ||
142 | </button> | ||
143 | </hbox> | ||
144 | </frame> | ||
145 | </vbox> | ||
146 | </window> | ||
147 | ' | ||
148 | |||
149 | export NETWORK_SELECT_NIC=' | ||
150 | <window title="Network Configuration" icon-name="gtk-network" window_position="1" resizable="false"> | ||
151 | <vbox> | ||
152 | <pixmap> | ||
153 | <input file>header.png</input> | ||
154 | </pixmap> | ||
155 | <hbox spacing="140"> | ||
156 | <pixmap> | ||
157 | <input file stock="gtk-network"></input> | ||
158 | </pixmap> | ||
159 | <text> | ||
160 | <label>Select a available NIC</label> | ||
161 | </text> | ||
162 | </hbox> | ||
163 | |||
164 | <frame Available NICs> | ||
165 | <table> | ||
166 | <label>Interface|Description</label> | ||
167 | <input>source hwdetection.sh; get_hwinfo -d netcard | sed "s:;:\|:g"</input> | ||
168 | <variable>NETWORK_NIC</variable> | ||
169 | </table> | ||
170 | </frame> | ||
171 | |||
172 | <hbox> | ||
173 | <button> | ||
174 | <label>back</label> | ||
175 | <input file stock="gtk-go-back"></input> | ||
176 | </button> | ||
177 | <button> | ||
178 | <label>next</label> | ||
179 | <input file stock="gtk-go-forward"></input> | ||
180 | </button> | ||
181 | </hbox> | ||
182 | </vbox> | ||
183 | </window> | ||
184 | ' | ||
185 | |||
186 | check_static_network_config() | ||
187 | { | ||
188 | # these are a requirement | ||
189 | if [[ -z ${NETWORK_IP} ]] | ||
190 | then | ||
191 | FAILURE_MESSAGE="No IP-Address given!" rundialog FAILURE_DIALOG | ||
192 | return 1 | ||
193 | fi | ||
194 | |||
195 | if [[ -z ${NETWORK_NETMASK} ]] | ||
196 | then | ||
197 | FAILURE_MESSAGE="No netmask given!" rundialog FAILURE_DIALOG | ||
198 | return 1 | ||
199 | fi | ||
200 | |||
201 | return 0 | ||
202 | } | ||
203 | # needed to be available in the gtk-dialog | ||
204 | export -f check_static_network_config | ||
205 | |||
206 | |||
207 | rundialog_network_config() | ||
208 | { | ||
209 | rundialog NETWORK_CONFIG | ||
210 | echo "DEBUG: EXIT='${EXIT}'" | ||
211 | |||
212 | # save given variables in env | ||
213 | # they will be shown as default on error | ||
214 | export NETWORK_HOSTNAME | ||
215 | export NETWORK_DOMAIN | ||
216 | |||
217 | case ${EXIT} in | ||
218 | abort) | ||
219 | echo "Aborted by user." | ||
220 | exit 1 | ||
221 | ;; | ||
222 | back) | ||
223 | # placeholder | ||
224 | return 1 | ||
225 | ;; | ||
226 | next) | ||
227 | if [[ -z ${NETWORK_HOSTNAME} ]] | ||
228 | then | ||
229 | FAILURE_MESSAGE="No hostname given." \ | ||
230 | rundialog FAILURE_DIALOG | ||
231 | rundialog_network_config | ||
232 | elif [[ -z ${NETWORK_DOMAIN} ]] | ||
233 | then | ||
234 | FAILURE_MESSAGE="No domain given." \ | ||
235 | rundialog FAILURE_DIALOG | ||
236 | rundialog_network_config | ||
237 | fi | ||
238 | ;; | ||
239 | esac | ||
240 | } | ||
241 | |||
242 | rundialog_network_config_select() | ||
243 | { | ||
244 | rundialog NETWORK_CONFIG_SELECT | ||
245 | echo "DEBUG: EXIT='${EXIT}'" | ||
246 | |||
247 | echo "DEBUG: NETWORK_DHCP='${NETWORK_DHCP}'" | ||
248 | echo "DEBUG: NETWORK_STATIC='${NETWORK_STATIC}'" | ||
249 | echo "DEBUG: NETWORK_NONE='${NETWORK_NONE}'" | ||
250 | |||
251 | case ${EXIT} in | ||
252 | abort) | ||
253 | echo "Aborted by user." | ||
254 | exit 1 | ||
255 | ;; | ||
256 | back) | ||
257 | rundialog_network_config | ||
258 | rundialog_network_config_select | ||
259 | ;; | ||
260 | next) | ||
261 | if [[ ${NETWORK_NONE} = true ]] | ||
262 | then | ||
263 | export NETWORK_METHOD="none" | ||
264 | 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." \ | ||
265 | rundialog WARNING_DIALOG | ||
266 | else | ||
267 | # want networking, run nic selection | ||
268 | rundialog_network_select_nic | ||
269 | |||
270 | if [[ ${NETWORK_DHCP} = true ]] | ||
271 | then | ||
272 | export NETWORK_METHOD="dhcp" | ||
273 | |||
274 | elif [[ ${NETWORK_STATIC} = true ]] | ||
275 | then | ||
276 | export NETWORK_METHOD="static" | ||
277 | # run static config dialog | ||
278 | rundialog_network_config_static | ||
279 | fi | ||
280 | fi | ||
281 | ;; | ||
282 | esac | ||
283 | } | ||
284 | |||
285 | rundialog_network_config_static() | ||
286 | { | ||
287 | rundialog NETWORK_CONFIG_STATIC | ||
288 | echo "DEBUG: EXIT='${EXIT}'" | ||
289 | |||
290 | # save given variables in env | ||
291 | # they will be shown as default on error | ||
292 | export NETWORK_IP | ||
293 | export NETWORK_NETMASK | ||
294 | export NETWORK_GATEWAY | ||
295 | export NETWORK_NAMESERVER | ||
296 | |||
297 | case ${EXIT} in | ||
298 | abort) | ||
299 | echo "Aborted by user." | ||
300 | exit 1 | ||
301 | ;; | ||
302 | back) | ||
303 | rundialog_network_select_nic | ||
304 | rundialog_network_config_static | ||
305 | ;; | ||
306 | next) | ||
307 | if ! check_static_network_config | ||
308 | then | ||
309 | rundialog_network_config_static | ||
310 | fi | ||
311 | ;; | ||
312 | esac | ||
313 | } | ||
314 | |||
315 | rundialog_network_select_nic() | ||
316 | { | ||
317 | rundialog NETWORK_SELECT_NIC | ||
318 | echo "DEBUG: EXIT='${EXIT}'" | ||
319 | |||
320 | case ${EXIT} in | ||
321 | abort) | ||
322 | echo "Aborted by user." | ||
323 | exit 1 | ||
324 | ;; | ||
325 | back) | ||
326 | rundialog_network_config_select | ||
327 | rundialog_network_select_nic | ||
328 | ;; | ||
329 | next) | ||
330 | if [[ -z ${NETWORK_NIC} ]] | ||
331 | then | ||
332 | FAILURE_MESSAGE="No NIC selected!" \ | ||
333 | rundialog FAILURE_DIALOG | ||
334 | fi | ||
335 | ;; | ||
336 | esac | ||
337 | } | ||
338 | |||
339 | main_networking() | ||
340 | { | ||
341 | rundialog_network_config | ||
342 | rundialog_network_config_select | ||
343 | #rundialog_network_select_nic | ||
344 | |||
345 | # export all variables | ||
346 | export NETWORK_HOSTNAME | ||
347 | export NETWORK_DOMAIN | ||
348 | export NETWORK_NIC | ||
349 | export NETWORK_METHOD | ||
350 | export NETWORK_IP | ||
351 | export NETWORK_NETMASK | ||
352 | export NETWORK_GATEWAY | ||
353 | export NETWORK_NAMESERVER | ||
354 | } |