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