Contents of /tags/installer-0_1_2/ncurses-gui/networking.sh
Parent Directory | Revision Log
Revision 1035 -
(show annotations)
(download)
(as text)
Sun May 30 18:37:54 2010 UTC (14 years, 4 months ago) by niro
Original Path: trunk/installer/ncurses-gui/networking.sh
File MIME type: application/x-sh
File size: 4617 byte(s)
Sun May 30 18:37:54 2010 UTC (14 years, 4 months ago) by niro
Original Path: trunk/installer/ncurses-gui/networking.sh
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 |