Annotation of /tags/installer-0_1_0/ncurses-gui/networking.sh
Parent Directory | Revision Log
Revision 1035 -
(hide annotations)
(download)
(as text)
Sun May 30 18:37:54 2010 UTC (14 years, 3 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, 3 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 | niro | 1013 | # $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 |