Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 719 - (hide annotations) (download) (as text)
Fri Apr 18 20:40:28 2008 UTC (16 years 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     }