Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1035 - (show annotations) (download) (as text)
Sun May 30 18:37:54 2010 UTC (13 years, 11 months ago) by niro
File MIME type: application/x-sh
File size: 4617 byte(s)
-code cleanup
1 # $Id$
2
3 network_config()
4 {
5 dialog \
6 --stdout \
7 --colors \
8 --title "Network Configuration" \
9 --backtitle "${TITLE}" \
10 --form "Enter a Hostname:" 10 70 0 \
11 "Hostname:" 1 1 "${NETWORK_HOSTNAME}" 1 18 36 0 \
12 " Domain:" 2 1 "${NETWORK_DOMAIN}" 2 18 36 0
13 }
14
15 network_config_select()
16 {
17 dialog \
18 --stdout \
19 --colors \
20 --title "Network Configuration" \
21 --backtitle "${TITLE}" \
22 --radiolist "Select a network type" \
23 10 45 3 \
24 dhcp "DHCP based networking" on \
25 static "IP based networking" "" \
26 none "Disable network support" ""
27
28 return $?
29 }
30
31 network_config_static()
32 {
33 dialog \
34 --stdout \
35 --colors \
36 --title "Network Configuration" \
37 --backtitle "${TITLE}" \
38 --form "Static network setup:" 12 70 0 \
39 "IP-Address:" 1 1 "${NETWORK_IP}" 1 18 36 0 \
40 " Netmask:" 2 1 "${NETWORK_NETMASK}" 2 18 36 0 \
41 " Broadcast:" 3 1 "${NETWORK_BROADCAST}" 3 18 36 0 \
42 " Gateway:" 4 1 "${NETWORK_GATEWAY}" 4 18 36 0 \
43 "Nameserver:" 5 1 "${NETWORK_NAMESERVER}" 5 18 36 0
44 }
45
46 network_select_nic()
47 {
48 local items=( $(get_hwinfo -d netcard | sed -e "s:\ :_:g") )
49 local count=${#items[*]}
50 local i
51
52 dialog \
53 --stdout \
54 --colors \
55 --title "Network Configuration" \
56 --backtitle "${TITLE}" \
57 --radiolist "Select a available NIC" \
58 10 60 ${count} \
59 $(for (( i=0; i<count; i++ )); do echo "${items[$i]%;*} ${items[$i]#*;} $([[ ${i} -eq 0 ]] && echo on || echo off)"; done)
60
61 return $?
62 }
63
64 check_static_network_config()
65 {
66 # these are a requirement
67 if [[ -z ${NETWORK_IP} ]]
68 then
69 messagebox "Warning" "No IP-Address given!" 10 40
70 return 1
71 fi
72
73 if [[ -z ${NETWORK_NETMASK} ]]
74 then
75 messagebox "Warning" "No netmask given!" 10 40
76 return 1
77 fi
78
79 if [[ -z ${NETWORK_BROADCAST} ]]
80 then
81 messagebox "Warning" "No broadcast given!" 10 40
82 return 1
83 fi
84
85 return 0
86 }
87
88 rundialog_network_config()
89 {
90 local NETWORK_CONFIG
91 NETWORK_CONFIG=($(network_config))
92 case $? in
93 -1) die "Error!" ;;
94 255) die "aborted by user" ;;
95
96 1)
97 rundialog_network_config
98 ;;
99
100 # vars already exported
101 0)
102 NETWORK_HOSTNAME="${NETWORK_CONFIG[0]}"
103 NETWORK_DOMAIN="${NETWORK_CONFIG[1]}"
104 if [[ -z ${NETWORK_HOSTNAME} ]]
105 then
106 messagebox "Warning" "No hostname given." 10 40
107 rundialog_network_config
108 elif [[ -z ${NETWORK_DOMAIN} ]]
109 then
110 messagebox "Warning" "No domain given." 10 40
111 rundialog_network_config
112 fi
113 export NETWORK_HOSTNAME
114 export NETWORK_DOMAIN
115 ;;
116 esac
117
118 debug "NETWORK_HOSTNAME='${NETWORK_HOSTNAME}'"
119 debug "NETWORK_DOMAIN='${NETWORK_DOMAIN}'"
120 }
121
122 rundialog_network_config_select()
123 {
124 NETWORK_METHOD=$(network_config_select)
125 case $? in
126 -1) die "Error!" ;;
127 255) die "aborted by user" ;;
128
129 1)
130 rundialog_network_config
131 rundialog_network_config_select
132 ;;
133
134 0) export NETWORK_METHOD
135 if [[ ${NETWORK_METHOD} = none ]]
136 then
137 export NETWORK_METHOD="none"
138 messagebox "Warning" "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." 10 70
139 else
140 # want networking, run nic selection
141 rundialog_network_select_nic
142
143 if [[ ${NETWORK_METHOD} = static ]]
144 then
145 # run static config dialog
146 rundialog_network_config_static
147 fi
148 fi
149 ;;
150 esac
151
152 debug "NETWORK_METHOD='${NETWORK_METHOD}'"
153 }
154
155 rundialog_network_config_static()
156 {
157 local NETWORK_CONFIG
158 NETWORK_CONFIG=($(network_config_static))
159 case $? in
160 -1) die "Error!" ;;
161 255) die "aborted by user" ;;
162
163 1)
164 rundialog_network_select_nic
165 rundialog_network_config_static
166 ;;
167
168 0)
169 NETWORK_IP="${NETWORK_CONFIG[0]}"
170 NETWORK_NETMASK="${NETWORK_CONFIG[1]}"
171 NETWORK_BROADCAST="${NETWORK_CONFIG[2]}"
172 NETWORK_GATEWAY="${NETWORK_CONFIG[3]}"
173 NETWORK_NAMESERVER="${NETWORK_CONFIG[4]}"
174 if ! check_static_network_config
175 then
176 rundialog_network_config_static
177 fi
178 export NETWORK_IP
179 export NETWORK_NETMASK
180 export NETWORK_BROADCAST
181 export NETWORK_GATEWAY
182 export NETWORK_NAMESERVER
183 ;;
184 esac
185
186 debug "NETWORK_IP='${NETWORK_IP}'"
187 debug "NETWORK_NETMASK='${NETWORK_NETMASK}'"
188 debug "NETWORK_BROADCAST='${NETWORK_BROADCAST}'"
189 debug "NETWORK_GATEWAY='${NETWORK_GATEWAY}'"
190 debug "NETWORK_NAMESERVER='${NETWORK_NAMESERVER}'"
191 }
192
193 rundialog_network_select_nic()
194 {
195 NETWORK_NIC=$(network_select_nic)
196 case $? in
197 -1) die "Error!" ;;
198 255) die "aborted by user" ;;
199
200 1)
201 rundialog_network_config_select
202 rundialog_network_select_nic
203 ;;
204
205 0) export NETWORK_NIC ;;
206 esac
207
208 debug "NETWORK_NIC='${NETWORK_NIC}'"
209 }
210
211 main_networking()
212 {
213 rundialog_network_config
214 rundialog_network_config_select
215 }

Properties

Name Value
svn:keywords Id