]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - usr.sbin/bsdinstall/scripts/mirrorselect
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / usr.sbin / bsdinstall / scripts / mirrorselect
1 #!/bin/sh
2 #-
3 # Copyright (c) 2011 Nathan Whitehorn
4 # All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9 # 1. Redistributions of source code must retain the above copyright
10 #    notice, this list of conditions and the following disclaimer.
11 # 2. Redistributions in binary form must reproduce the above copyright
12 #    notice, this list of conditions and the following disclaimer in the
13 #    documentation and/or other materials provided with the distribution.
14 #
15 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 # SUCH DAMAGE.
26 #
27 # $FreeBSD$
28
29 : ${DIALOG_OK=0}
30 : ${DIALOG_CANCEL=1}
31 : ${DIALOG_HELP=2}
32 : ${DIALOG_EXTRA=3}
33 : ${DIALOG_ITEM_HELP=4}
34 : ${DIALOG_ESC=255}
35
36 exec 3>&1
37 MIRROR=`dialog --backtitle "FreeBSD Installer" \
38     --title "Mirror Selection" --extra-button --extra-label "Other" \
39     --menu "Please select the site closest to you or \"other\" if you'd like to specify a different choice.  Also note that not every site listed here carries more than the base distribution kits. Only Primary sites are guaranteed to carry the full range of possible distributions. Select a site that's close!" \
40     0 0 0 \
41         ftp://ftp.freebsd.org   "Main Site"\
42         ftp://ftp.freebsd.org   "IPv6 Main Site"\
43         ftp://ftp3.ie.freebsd.org       "IPv6 Ireland"\
44         ftp://ftp.il.freebsd.org        "IPv6 Israel"\
45         ftp://ftp2.jp.freebsd.org       "IPv6 Japan"\
46         ftp://ftp4.se.freebsd.org       "IPv6 Sweden"\
47         ftp://ftp4.us.freebsd.org       "IPv6 USA"\
48         ftp://ftp2.tr.freebsd.org       "IPv6 Turkey"\
49         ftp://ftp1.freebsd.org  "Primary"\
50         ftp://ftp2.freebsd.org  "Primary #2"\
51         ftp://ftp3.freebsd.org  "Primary #3"\
52         ftp://ftp4.freebsd.org  "Primary #4"\
53         ftp://ftp5.freebsd.org  "Primary #5"\
54         ftp://ftp6.freebsd.org  "Primary #6"\
55         ftp://ftp7.freebsd.org  "Primary #7"\
56         ftp://ftp8.freebsd.org  "Primary #8"\
57         ftp://ftp9.freebsd.org  "Primary #9"\
58         ftp://ftp10.freebsd.org         "Primary #10"\
59         ftp://ftp11.freebsd.org         "Primary #11"\
60         ftp://ftp12.freebsd.org         "Primary #12"\
61         ftp://ftp13.freebsd.org         "Primary #13"\
62         ftp://ftp14.freebsd.org         "Primary #14"\
63         ftp://ftp.ar.freebsd.org        "Argentina"\
64         ftp://ftp.au.freebsd.org        "Australia"\
65         ftp://ftp2.au.freebsd.org       "Australia #2"\
66         ftp://ftp3.au.freebsd.org       "Australia #3"\
67         ftp://ftp.at.freebsd.org        "Austria"\
68         ftp://ftp2.at.freebsd.org       "Austria #2"\
69         ftp://ftp.br.freebsd.org        "Brazil"\
70         ftp://ftp2.br.freebsd.org       "Brazil #2"\
71         ftp://ftp3.br.freebsd.org       "Brazil #3"\
72         ftp://ftp4.br.freebsd.org       "Brazil #4"\
73         ftp://ftp5.br.freebsd.org       "Brazil #5"\
74         ftp://ftp6.br.freebsd.org       "Brazil #6"\
75         ftp://ftp7.br.freebsd.org       "Brazil #7"\
76         ftp://ftp.ca.freebsd.org        "Canada"\
77         ftp://ftp.cn.freebsd.org        "China"\
78         ftp://ftp2.cn.freebsd.org       "China #2"\
79         ftp://ftp.hr.freebsd.org        "Croatia"\
80         ftp://ftp.cz.freebsd.org        "Czech Republic"\
81         ftp://ftp.dk.freebsd.org        "Denmark"\
82         ftp://ftp2.dk.freebsd.org       "Denmark #2"\
83         ftp://ftp.ee.freebsd.org        "Estonia"\
84         ftp://ftp.fi.freebsd.org        "Finland"\
85         ftp://ftp.fr.freebsd.org        "France"\
86         ftp://ftp2.fr.freebsd.org       "IPv6 France #2"\
87         ftp://ftp3.fr.freebsd.org       "France #3"\
88         ftp://ftp4.fr.freebsd.org       "IPv6 France #4"\
89         ftp://ftp5.fr.freebsd.org       "France #5"\
90         ftp://ftp6.fr.freebsd.org       "France #6"\
91         ftp://ftp8.fr.freebsd.org       "IPv6 France #8"\
92         ftp://ftp.de.freebsd.org        "Germany"\
93         ftp://ftp2.de.freebsd.org       "Germany #2"\
94         ftp://ftp3.de.freebsd.org       "Germany #3"\
95         ftp://ftp4.de.freebsd.org       "Germany #4"\
96         ftp://ftp5.de.freebsd.org       "Germany #5"\
97         ftp://ftp6.de.freebsd.org       "Germany #6"\
98         ftp://ftp7.de.freebsd.org       "Germany #7"\
99         ftp://ftp8.de.freebsd.org       "Germany #8"\
100         ftp://ftp.gr.freebsd.org        "Greece"\
101         ftp://ftp2.gr.freebsd.org       "Greece #2"\
102         ftp://ftp.hu.freebsd.org        "Hungary"\
103         ftp://ftp.is.freebsd.org        "Iceland"\
104         ftp://ftp.ie.freebsd.org        "Ireland"\
105         ftp://ftp2.ie.freebsd.org       "Ireland #2"\
106         ftp://ftp3.ie.freebsd.org       "Ireland #3"\
107         ftp://ftp.il.freebsd.org        "Israel"\
108         ftp://ftp.it.freebsd.org        "Italy"\
109         ftp://ftp.jp.freebsd.org        "Japan"\
110         ftp://ftp2.jp.freebsd.org       "Japan #2"\
111         ftp://ftp3.jp.freebsd.org       "Japan #3"\
112         ftp://ftp4.jp.freebsd.org       "Japan #4"\
113         ftp://ftp5.jp.freebsd.org       "Japan #5"\
114         ftp://ftp6.jp.freebsd.org       "Japan #6"\
115         ftp://ftp7.jp.freebsd.org       "Japan #7"\
116         ftp://ftp8.jp.freebsd.org       "Japan #8"\
117         ftp://ftp9.jp.freebsd.org       "Japan #9"\
118         ftp://ftp.kr.freebsd.org        "Korea"\
119         ftp://ftp2.kr.freebsd.org       "Korea #2"\
120         ftp://ftp.lt.freebsd.org        "Lithuania"\
121         ftp://ftp.nl.freebsd.org        "Netherlands"\
122         ftp://ftp2.nl.freebsd.org       "Netherlands #2"\
123         ftp://ftp.no.freebsd.org        "Norway"\
124         ftp://ftp3.no.freebsd.org       "Norway #3"\
125         ftp://ftp.pl.freebsd.org        "Poland"\
126         ftp://ftp2.pl.freebsd.org       "Poland #2"\
127         ftp://ftp5.pl.freebsd.org       "Poland #5"\
128         ftp://ftp.pt.freebsd.org        "Portugal"\
129         ftp://ftp2.pt.freebsd.org       "Portugal #2"\
130         ftp://ftp4.pt.freebsd.org       "Portugal #4"\
131         ftp://ftp.ro.freebsd.org        "Romania"\
132         ftp://ftp.ru.freebsd.org        "Russia"\
133         ftp://ftp2.ru.freebsd.org       "Russia #2"\
134         ftp://ftp3.ru.freebsd.org       "Russia #3"\
135         ftp://ftp4.ru.freebsd.org       "Russia #4"\
136         ftp://ftp.sg.freebsd.org        "Singapore"\
137         ftp://ftp.sk.freebsd.org        "Slovak Republic"\
138         ftp://ftp.si.freebsd.org        "Slovenia"\
139         ftp://ftp2.si.freebsd.org       "Slovenia #2"\
140         ftp://ftp.za.freebsd.org        "South Africa"\
141         ftp://ftp2.za.freebsd.org       "South Africa #2"\
142         ftp://ftp3.za.freebsd.org       "South Africa #3"\
143         ftp://ftp4.za.freebsd.org       "South Africa #4"\
144         ftp://ftp.es.freebsd.org        "Spain"\
145         ftp://ftp2.es.freebsd.org       "Spain #2"\
146         ftp://ftp3.es.freebsd.org       "Spain #3"\
147         ftp://ftp.se.freebsd.org        "Sweden"\
148         ftp://ftp2.se.freebsd.org       "Sweden #2"\
149         ftp://ftp3.se.freebsd.org       "Sweden #3"\
150         ftp://ftp4.se.freebsd.org       "Sweden #4"\
151         ftp://ftp5.se.freebsd.org       "Sweden #5"\
152         ftp://ftp6.se.freebsd.org       "Sweden #6"\
153         ftp://ftp.ch.freebsd.org        "Switzerland"\
154         ftp://ftp2.ch.freebsd.org       "Switzerland #2"\
155         ftp://ftp.tw.freebsd.org        "Taiwan"\
156         ftp://ftp2.tw.freebsd.org       "Taiwan #2"\
157         ftp://ftp3.tw.freebsd.org       "Taiwan #3"\
158         ftp://ftp4.tw.freebsd.org       "Taiwan #4"\
159         ftp://ftp6.tw.freebsd.org       "Taiwan #6"\
160         ftp://ftp11.tw.freebsd.org      "Taiwan #11"\
161         ftp://ftp.tr.freebsd.org        "Turkey"\
162         ftp://ftp2.tr.freebsd.org       "Turkey #2"\
163         ftp://ftp.uk.freebsd.org        "UK"\
164         ftp://ftp2.uk.freebsd.org       "UK #2"\
165         ftp://ftp3.uk.freebsd.org       "UK #3"\
166         ftp://ftp4.uk.freebsd.org       "UK #4"\
167         ftp://ftp5.uk.freebsd.org       "UK #5"\
168         ftp://ftp6.uk.freebsd.org       "UK #6"\
169         ftp://ftp.ua.freebsd.org        "Ukraine"\
170         ftp://ftp2.ua.freebsd.org       "Ukraine #2"\
171         ftp://ftp5.ua.freebsd.org       "Ukraine #5"\
172         ftp://ftp6.ua.freebsd.org       "Ukraine #6"\
173         ftp://ftp7.ua.freebsd.org       "Ukraine #7"\
174         ftp://ftp8.ua.freebsd.org       "Ukraine #8"\
175         ftp://ftp1.us.freebsd.org       "USA #1"\
176         ftp://ftp2.us.freebsd.org       "USA #2"\
177         ftp://ftp3.us.freebsd.org       "USA #3"\
178         ftp://ftp4.us.freebsd.org       "USA #4"\
179         ftp://ftp5.us.freebsd.org       "USA #5"\
180         ftp://ftp6.us.freebsd.org       "USA #6"\
181         ftp://ftp7.us.freebsd.org       "USA #7"\
182         ftp://ftp8.us.freebsd.org       "USA #8"\
183         ftp://ftp9.us.freebsd.org       "USA #9"\
184         ftp://ftp10.us.freebsd.org      "USA #10"\
185         ftp://ftp11.us.freebsd.org      "USA #11"\
186         ftp://ftp12.us.freebsd.org      "USA #12"\
187         ftp://ftp13.us.freebsd.org      "USA #13"\
188         ftp://ftp14.us.freebsd.org      "USA #14"\
189         ftp://ftp15.us.freebsd.org      "USA #15"\
190     2>&1 1>&3`
191 MIRROR_BUTTON=$?
192 exec 3>&-
193
194 _UNAME_R=`uname -r`
195
196 case ${_UNAME_R} in
197         *-CURRENT|*-STABLE|*-BETA*|*-PRERELEASE|*-RC*)
198                 RELDIR="snapshots"
199                 ;;
200         *)
201                 RELDIR="releases"
202                 ;;
203 esac
204
205 BSDINSTALL_DISTSITE="$MIRROR/pub/FreeBSD/${RELDIR}/`uname -m`/`uname -p`/${_UNAME_R}"
206
207 case $MIRROR_BUTTON in
208 $DIALOG_CANCEL)
209         exit 1
210         ;;
211 $DIALOG_OK)
212         ;;
213 $DIALOG_EXTRA)
214         exec 3>&1
215         BSDINSTALL_DISTSITE=`dialog --backtitle "FreeBSD Installer" \
216             --title "Mirror Selection" \
217             --inputbox "Please enter the URL to an alternate FreeBSD mirror:" \
218             0 0 "$BSDINSTALL_DISTSITE" 2>&1 1>&3`
219         MIRROR_BUTTON=$?
220         exec 3>&-
221         test $MIRROR_BUTTON -eq 0 || exec $0 $@
222         ;;
223 esac
224
225 export BSDINSTALL_DISTSITE
226 echo $BSDINSTALL_DISTSITE >&2