Contents of /trunk/installer/gtk-gui/networking.sh
Parent Directory | Revision Log
Revision 719 -
(show 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 | # $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 | } |