Magellan Linux

Contents of /trunk/installer/gtk-gui/networking.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 762 - (show annotations) (download) (as text)
Mon Sep 22 21:13:13 2008 UTC (15 years, 7 months ago) by niro
File MIME type: application/x-sh
File size: 7325 byte(s)
-return to nic setup if nothing selected

1 # $Header: /home/cvsd/magellan-cvs/magellan-src/installer/gtk-gui/networking.sh,v 1.2 2008-09-22 21:13:13 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 rundialog_network_select_nic
335 fi
336 ;;
337 esac
338 }
339
340 main_networking()
341 {
342 rundialog_network_config
343 rundialog_network_config_select
344 #rundialog_network_select_nic
345
346 # export all variables
347 export NETWORK_HOSTNAME
348 export NETWORK_DOMAIN
349 export NETWORK_NIC
350 export NETWORK_METHOD
351 export NETWORK_IP
352 export NETWORK_NETMASK
353 export NETWORK_GATEWAY
354 export NETWORK_NAMESERVER
355 }