]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - usr.sbin/pc-sysinstall/backend/functions-ftp.sh
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / usr.sbin / pc-sysinstall / backend / functions-ftp.sh
1 #!/bin/sh
2 #-
3 # Copyright (c) 2010 iXsystems, Inc.  All rights reserved.
4 #
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
7 # are met:
8 # 1. Redistributions of source code must retain the above copyright
9 #    notice, this list of conditions and the following disclaimer.
10 # 2. Redistributions in binary form must reproduce the above copyright
11 #    notice, this list of conditions and the following disclaimer in the
12 #    documentation and/or other materials provided with the distribution.
13 #
14 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 # SUCH DAMAGE.
25 #
26 # $FreeBSD$
27
28 # Functions which runs commands on the system
29
30 . ${BACKEND}/functions.sh
31 . ${BACKEND}/functions-parse.sh
32
33 DEFAULT_FTP_SERVER="ftp.freebsd.org"
34
35 MAIN_FTP_SERVERS="\
36 Main Site: ftp.freebsd.org"
37
38 IPV6_FTP_SERVERS="\
39 IPv6 Main Site: ftp.freebsd.org|\
40 IPv6 Ireland: ftp3.ie.freebsd.org|\
41 IPv6 Israel: ftp.il.freebsd.org|\
42 IPv6 Japan: ftp2.jp.freebsd.org|\
43 IPv6 Sweden: ftp4.se.freebsd.org|\
44 IPv6 USA: ftp4.us.freebsd.org|\
45 IPv6 Turkey: ftp2.tr.freebsd.org"
46
47 PRIMARY_FTP_SERVERS="\
48 Primary: ftp1.freebsd.org|\
49 Primary #2: ftp2.freebsd.org|\
50 Primary #3: ftp3.freebsd.org|\
51 Primary #4: ftp4.freebsd.org|\
52 Primary #5: ftp5.freebsd.org|\
53 Primary #6: ftp6.freebsd.org|\
54 Primary #7: ftp7.freebsd.org|\
55 Primary #8: ftp8.freebsd.org|\
56 Primary #9: ftp9.freebsd.org|\
57 Primary #10: ftp10.freebsd.org|\
58 Primary #11: ftp11.freebsd.org|\
59 Primary #12: ftp12.freebsd.org|\
60 Primary #13: ftp13.freebsd.org|\
61 Primary #14: ftp14.freebsd.org"
62
63 ARGENTINA_FTP_SERVERS="\
64 Argentina: ftp.ar.freebsd.org"
65
66 AUSTRALIA_FTP_SERVERS="\
67 Australia: ftp.au.freebsd.org|\
68 Australia #2: ftp2.au.freebsd.org|\
69 Australia #3: ftp3.au.freebsd.org"
70
71 AUSTRIA_FTP_SERVERS="\
72 Austria: ftp.at.freebsd.org|\
73 Austria #2: ftp2.at.freebsd.org"
74
75 BRAZIL_FTP_SERVERS="\
76 Brazil: ftp.br.freebsd.org|\
77 Brazil #2: ftp2.br.freebsd.org|\
78 Brazil #3: ftp3.br.freebsd.org|\
79 Brazil #4: ftp4.br.freebsd.org|\
80 Brazil #5: ftp5.br.freebsd.org|\
81 Brazil #6: ftp6.br.freebsd.org|\
82 Brazil #7: ftp7.br.freebsd.org"
83
84 CANADA_FTP_SERVERS="\
85 Canada: ftp.ca.freebsd.org"
86
87 CHINA_FTP_SERVERS="\
88 China: ftp.cn.freebsd.org|\
89 China #2: ftp2.cn.freebsd.org"
90
91 CROATIA_FTP_SERVERS="\
92 Croatia: ftp.hr.freebsd.org"
93
94 CZECH_REPUBLIC_FTP_SERVERS="\
95 Czech Republic: ftp.cz.freebsd.org"
96
97 DENMARK_FTP_SERVERS="\
98 Denmark: ftp.dk.freebsd.org|\
99 Denmark #2: ftp2.dk.freebsd.org"
100
101 ESTONIA_FTP_SERVERS="\
102 Estonia: ftp.ee.freebsd.org"
103
104 FINLAND_FTP_SERVERS="\
105 Finland: ftp.fi.freebsd.org"
106
107 FRANCE_FTP_SERVERS="\
108 France: ftp.fr.freebsd.org|\
109 France #2: ftp2.fr.freebsd.org|\
110 France #3: ftp3.fr.freebsd.org|\
111 France #5: ftp5.fr.freebsd.org|\
112 France #6: ftp6.fr.freebsd.org|\
113 France #8: ftp8.fr.freebsd.org"
114
115 GERMANY_FTP_SERVERS="\
116 Germany: ftp.de.freebsd.org|\
117 Germany #2: ftp2.de.freebsd.org|\
118 Germany #3: ftp3.de.freebsd.org|\
119 Germany #4: ftp4.de.freebsd.org|\
120 Germany #5: ftp5.de.freebsd.org|\
121 Germany #6: ftp6.de.freebsd.org|\
122 Germany #7: ftp7.de.freebsd.org|\
123 Germany #8: ftp8.de.freebsd.org"
124
125 GREECE_FTP_SERVERS="\
126 Greece: ftp.gr.freebsd.org|\
127 Greece #2: ftp2.gr.freebsd.org"
128
129 HUNGARY_FTP_SERVERS="\
130 Hungary: ftp.hu.freebsd.org"
131
132 ICELAND_FTP_SERVERS="\
133 Iceland: ftp.is.freebsd.org"
134
135 IRELAND_FTP_SERVERS="\
136 Ireland: ftp.ie.freebsd.org|\
137 Ireland #2: ftp2.ie.freebsd.org|\
138 Ireland #3: ftp3.ie.freebsd.org"
139
140 ISRAEL_FTP_SERVERS="\
141 Israel: ftp.il.freebsd.org"
142
143 ITALY_FTP_SERVERS="\
144 Italy: ftp.it.freebsd.org"
145
146 JAPAN_FTP_SERVERS="\
147 Japan: ftp.jp.freebsd.org|\
148 Japan #2: ftp2.jp.freebsd.org|\
149 Japan #3: ftp3.jp.freebsd.org|\
150 Japan #4: ftp4.jp.freebsd.org|\
151 Japan #5: ftp5.jp.freebsd.org|\
152 Japan #6: ftp6.jp.freebsd.org|\
153 Japan #7: ftp7.jp.freebsd.org|\
154 Japan #8: ftp8.jp.freebsd.org|\
155 Japan #9: ftp9.jp.freebsd.org"
156
157 KOREA_FTP_SERVERS="\
158 Korea: ftp.kr.freebsd.org|\
159 Korea #2: ftp2.kr.freebsd.org"
160
161 LITHUANIA_FTP_SERVERS="\
162 Lithuania: ftp.lt.freebsd.org"
163
164 NETHERLANDS_FTP_SERVERS="\
165 Netherlands: ftp.nl.freebsd.org|\
166 Netherlands #2: ftp2.nl.freebsd.org"
167
168 NORWAY_FTP_SERVERS="\
169 Norway: ftp.no.freebsd.org|\
170 Norway #3: ftp3.no.freebsd.org"
171
172 POLAND_FTP_SERVERS="\
173 Poland: ftp.pl.freebsd.org|\
174 Poland #2: ftp2.pl.freebsd.org|\
175 Poland #5: ftp5.pl.freebsd.org"
176
177 PORTUGAL_FTP_SERVERS="\
178 Portugal: ftp.pt.freebsd.org|\
179 Portugal #2: ftp2.pt.freebsd.org|\
180 Portugal #4: ftp4.pt.freebsd.org"
181
182 ROMANIA_FTP_SERVERS="\
183 Romania: ftp.ro.freebsd.org"
184
185 RUSSIA_FTP_SERVERS="\
186 Russia: ftp.ru.freebsd.org|\
187 Russia #2: ftp2.ru.freebsd.org|\
188 Russia #3: ftp3.ru.freebsd.org|\
189 Russia #4: ftp4.ru.freebsd.org"
190
191 SINGAPORE_FTP_SERVERS="\
192 Singapore: ftp.sg.freebsd.org"
193
194 SLOVAK_REPUBLIC_FTP_SERVERS="\
195 Slovak Republic: ftp.sk.freebsd.org"
196
197 SLOVENIA_FTP_SERVERS="\
198 Slovenia: ftp.si.freebsd.org|\
199 Slovenia #2: ftp2.si.freebsd.org"
200
201 SOUTH_AFRICA_FTP_SERVERS="\
202 South Africa: ftp.za.freebsd.org|\
203 South Africa #2: ftp2.za.freebsd.org|\
204 South Africa #3: ftp3.za.freebsd.org|\
205 South Africa #4: ftp4.za.freebsd.org"
206
207 SPAIN_FTP_SERVERS="\
208 Spain: ftp.es.freebsd.org|\
209 Spain #2: ftp2.es.freebsd.org|\
210 Spain #3: ftp3.es.freebsd.org"
211
212 SWEDEN_FTP_SERVERS="\
213 Sweden: ftp.se.freebsd.org|\
214 Sweden #2: ftp2.se.freebsd.org|\
215 Sweden #3: ftp3.se.freebsd.org|\
216 Sweden #4: ftp4.se.freebsd.org|\
217 Sweden #5: ftp5.se.freebsd.org"
218
219 SWITZERLAND_FTP_SERVERS="\
220 Switzerland: ftp.ch.freebsd.org|\
221 Switzerland #2: ftp2.ch.freebsd.org"
222
223 TAIWAN_FTP_SERVERS="\
224 Taiwan: ftp.tw.freebsd.org|\
225 Taiwan #2: ftp2.tw.freebsd.org|\
226 Taiwan #3: ftp3.tw.freebsd.org|\
227 Taiwan #4: ftp4.tw.freebsd.org|\
228 Taiwan #6: ftp6.tw.freebsd.org|\
229 Taiwan #11: ftp11.tw.freebsd.org"
230
231 TURKEY_FTP_SERVERS="\
232 Turkey: ftp.tr.freebsd.org|\
233 Turkey #2: ftp2.tr.freebsd.org"
234
235 UK_FTP_SERVERS="\
236 UK: ftp.uk.freebsd.org|\
237 UK #2: ftp2.uk.freebsd.org|\
238 UK #3: ftp3.uk.freebsd.org|\
239 UK #4: ftp4.uk.freebsd.org|\
240 UK #5: ftp5.uk.freebsd.org|\
241 UK #6: ftp6.uk.freebsd.org"
242
243 UKRAINE_FTP_SERVERS="\
244 Ukraine: ftp.ua.freebsd.org|\
245 Ukraine #2: ftp2.ua.freebsd.org|\
246 Ukraine #5: ftp5.ua.freebsd.org|\
247 Ukraine #6: ftp6.ua.freebsd.org|\
248 Ukraine #7: ftp7.ua.freebsd.org|\
249 Ukraine #8: ftp8.ua.freebsd.org"
250
251 USA_FTP_SERVERS="\
252 USA #1: ftp1.us.freebsd.org|\
253 USA #2: ftp2.us.freebsd.org|\
254 USA #3: ftp3.us.freebsd.org|\
255 USA #4: ftp4.us.freebsd.org|\
256 USA #5: ftp5.us.freebsd.org|\
257 USA #6: ftp6.us.freebsd.org|\
258 USA #7: ftp7.us.freebsd.org|\
259 USA #8: ftp8.us.freebsd.org|\
260 USA #9: ftp9.us.freebsd.org|\
261 USA #10: ftp10.us.freebsd.org|\
262 USA #11: ftp11.us.freebsd.org|\
263 USA #12: ftp12.us.freebsd.org|\
264 USA #13: ftp13.us.freebsd.org|\
265 USA #14: ftp14.us.freebsd.org|\
266 USA #15: ftp15.us.freebsd.org"
267
268 show_mirrors()
269 {
270   MIRRORS="${1}"
271   if [ -n "${MIRRORS}" ]
272   then
273     SAVE_IFS="${IFS}"
274     IFS="|"
275     for m in ${MIRRORS}
276     do
277       echo "$m"
278     done
279     IFS="${SAVE_IFS}"
280   fi
281 };
282
283 set_ftp_mirror()
284 {
285   MIRROR="${1}"
286   echo "${MIRROR}" > "${CONFDIR}/mirrors.conf"
287 };
288
289 get_ftp_mirror()
290 {
291   MIRROR="${DEFAULT_FTP_SERVER}"
292   if [ -f "${CONFDIR}/mirrors.conf" ]
293   then
294     MIRROR=`cat "${CONFDIR}/mirrors.conf"`
295   fi
296
297   export VAL="${MIRROR}"
298 };
299
300
301 get_ftpHost()
302 {
303   get_value_from_cfg ftpPath
304   ftpPath="$VAL"
305
306   ftpHost=`echo "${ftpPath}" | sed -E 's|^(ftp://)([^/]*)(.*)|\2|'`
307   export VAL="${ftpHost}"
308 };
309
310 get_ftpDir()
311 {
312   get_value_from_cfg ftpPath
313   ftpPath="$VAL"
314
315   ftpDir=`echo "${ftpPath}" | sed -E 's|^(ftp://)([^/]*)(.*)|\3|'`
316   export VAL="${ftpDir}"
317 };
318
319 get_ftp_mirrors()
320 {
321   COUNTRY="${1}"
322   if [ -n "$COUNTRY" ]
323   then
324     COUNTRY=`echo $COUNTRY|tr A-Z a-z`
325     case "${COUNTRY}" in
326       argentina*) VAL="${ARGENTINA_FTP_SERVERS}" ;;
327       australia*) VAL="${AUSTRALIA_FTP_SERVERS}" ;;
328       austria*) VAL="${AUSTRIA_FTP_SERVERS}" ;;
329       brazil*) VAL="${BRAZIL_FTP_SERVERS}" ;;
330       canada*) VAL="${CANADA_FTP_SERVERS}" ;;
331       china*) VAL="${CHINA_FTP_SERVERS}" ;;
332       croatia*) VAL="${CROATIA_FTP_SERVERS}" ;;
333       czech*) VAL="${CZECH_REPUBLIC_FTP_SERVERS}" ;;
334       denmark*) VAL="${DENMARK_FTP_SERVERS}" ;;
335       estonia*) VAL="${ESTONIA_FTP_SERVERS}" ;;
336       finland*) VAL="${FINLAND_FTP_SERVERS}" ;;
337       france*) VAL="${FRANCE_FTP_SERVERS}" ;;
338       germany*) VAL="${GERMANY_FTP_SERVERS}" ;;
339       greece*) VAL="${GREECE_FTP_SERVERS}" ;;
340       hungary*) VAL="${HUNGARY_FTP_SERVERS}" ;;
341       iceland*) VAL="${ICELAND_FTP_SERVERS}" ;;
342       ireland*) VAL="${IRELAND_FTP_SERVERS}" ;;
343       israel*) VAL="${ISRAEL_FTP_SERVERS}" ;;
344       italy*) VAL="${ITALY_FTP_SERVERS}" ;;
345       japan*) VAL="${JAPAN_FTP_SERVERS}" ;;
346       korea*) VAL="${KOREA_FTP_SERVERS}" ;;
347       lithuania*) VAL="${LITHUANIA_FTP_SERVERS}" ;;
348       netherlands*) VAL="${NETHERLANDS_FTP_SERVERS}" ;;
349       norway*) VAL="${NORWAY_FTP_SERVERS}" ;;
350       poland*) VAL="${POLAND_FTP_SERVERS}" ;;
351       portugal*) VAL="${PORTUGAL_FTP_SERVERS}" ;;
352       romania*) VAL="${ROMAINIA_FTP_SERVERS}" ;;
353       russia*) VAL="${RUSSIA_FTP_SERVERS}" ;;
354       singapore*) VAL="${SINGAPORE_FTP_SERVERS}" ;;
355       slovak*) VAL="${SLOVAK_REPUBLIC_FTP_SERVERS}" ;;
356       slovenia*) VAL="${SLOVENIA_FTP_SERVERS}" ;;
357       *africa*) VAL="${SOUTH_AFRICA_FTP_SERVERS}" ;;
358       spain*) VAL="${SPAIN_FTP_SERVERS}" ;;
359       sweden*) VAL="${SWEDEN_FTP_SERVERS}" ;;
360       switzerland*) VAL="${SWITZERLAND_FTP_SERVERS}" ;;
361       taiwan*) VAL="${TAIWAN_FTP_SERVERS}" ;;
362       turkey*) VAL="${TURKEY_FTP_SERVERS}" ;;
363       ukraine*) VAL="${UKRAINE_FTP_SERVERS}" ;;
364       uk*) VAL="${UK_FTP_SERVERS}" ;;
365       usa*) VAL="${USA_FTP_SERVERS}" ;;
366     esac
367   else
368     VAL="${MAIN_FTP_SERVERS}"
369     VAL="${VAL}|${IPV6_FTP_SERVERS}"
370     VAL="${VAL}|${PRIMARY_FTP_SERVERS}"
371     VAL="${VAL}|${ARGENTINA_FTP_SERVERS}"
372     VAL="${VAL}|${AUSTRALIA_FTP_SERVERS}"
373     VAL="${VAL}|${AUSTRIA_FTP_SERVERS}"
374     VAL="${VAL}|${BRAZIL_FTP_SERVERS}"
375     VAL="${VAL}|${CANADA_FTP_SERVERS}"
376     VAL="${VAL}|${CHINA_FTP_SERVERS}"
377     VAL="${VAL}|${CROATIA_FTP_SERVERS}"
378     VAL="${VAL}|${CZECH_REPUBLIC_FTP_SERVERS}"
379     VAL="${VAL}|${DENMARK_FTP_SERVERS}"
380     VAL="${VAL}|${ESTONIA_FTP_SERVERS}"
381     VAL="${VAL}|${FINLAND_FTP_SERVERS}"
382     VAL="${VAL}|${FRANCE_FTP_SERVERS}"
383     VAL="${VAL}|${GERMANY_FTP_SERVERS}"
384     VAL="${VAL}|${GREECE_FTP_SERVERS}"
385     VAL="${VAL}|${HUNGARY_FTP_SERVERS}"
386     VAL="${VAL}|${ICELAND_FTP_SERVERS}"
387     VAL="${VAL}|${IRELAND_FTP_SERVERS}"
388     VAL="${VAL}|${ISRAEL_FTP_SERVERS}"
389     VAL="${VAL}|${ITALY_FTP_SERVERS}"
390     VAL="${VAL}|${JAPAN_FTP_SERVERS}"
391     VAL="${VAL}|${KOREA_FTP_SERVERS}"
392     VAL="${VAL}|${LITHUANIA_FTP_SERVERS}"
393     VAL="${VAL}|${NETHERLANDS_FTP_SERVERS}"
394     VAL="${VAL}|${NORWAY_FTP_SERVERS}"
395     VAL="${VAL}|${POLAND_FTP_SERVERS}"
396     VAL="${VAL}|${PORTUGAL_FTP_SERVERS}"
397     VAL="${VAL}|${ROMANIA_FTP_SERVERS}"
398     VAL="${VAL}|${RUSSIA_FTP_SERVERS}"
399     VAL="${VAL}|${SINGAPORE_FTP_SERVERS}"
400     VAL="${VAL}|${SLOVAK_REPUBLIC_FTP_SERVERS}"
401     VAL="${VAL}|${SLOVENIA_FTP_SERVERS}"
402     VAL="${VAL}|${SOUTH_AFRICA_FTP_SERVERS}"
403     VAL="${VAL}|${SPAIN_FTP_SERVERS}"
404     VAL="${VAL}|${SWEDEN_FTP_SERVERS}"
405     VAL="${VAL}|${SWITZERLAND_FTP_SERVERS}"
406     VAL="${VAL}|${TAIWAN_FTP_SERVERS}"
407     VAL="${VAL}|${TURKEY_FTP_SERVERS}"
408     VAL="${VAL}|${UKRAINE_FTP_SERVERS}"
409     VAL="${VAL}|${UK_FTP_SERVERS}"
410     VAL="${VAL}|${USA_FTP_SERVERS}"
411   fi
412
413   export VAL
414 };