]> CyberLeo.Net >> Repos - FreeBSD/releng/9.0.git/blob - usr.sbin/bsdinstall/scripts/mirrorselect
Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
[FreeBSD/releng/9.0.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://snapshots.jp.freebsd.org  "Snapshots Server Japan"\
43         ftp://snapshots.se.freebsd.org  "Snapshots Server Sweden"\
44         ftp://ftp.freebsd.org   "IPv6 Main Site"\
45         ftp://ftp3.ie.freebsd.org       "IPv6 Ireland"\
46         ftp://ftp.il.freebsd.org        "IPv6 Israel"\
47         ftp://ftp2.jp.freebsd.org       "IPv6 Japan"\
48         ftp://ftp4.se.freebsd.org       "IPv6 Sweden"\
49         ftp://ftp4.us.freebsd.org       "IPv6 USA"\
50         ftp://ftp2.tr.freebsd.org       "IPv6 Turkey"\
51         ftp://ftp1.freebsd.org  "Primary"\
52         ftp://ftp2.freebsd.org  "Primary #2"\
53         ftp://ftp3.freebsd.org  "Primary #3"\
54         ftp://ftp4.freebsd.org  "Primary #4"\
55         ftp://ftp5.freebsd.org  "Primary #5"\
56         ftp://ftp6.freebsd.org  "Primary #6"\
57         ftp://ftp7.freebsd.org  "Primary #7"\
58         ftp://ftp8.freebsd.org  "Primary #8"\
59         ftp://ftp9.freebsd.org  "Primary #9"\
60         ftp://ftp10.freebsd.org         "Primary #10"\
61         ftp://ftp11.freebsd.org         "Primary #11"\
62         ftp://ftp12.freebsd.org         "Primary #12"\
63         ftp://ftp13.freebsd.org         "Primary #13"\
64         ftp://ftp14.freebsd.org         "Primary #14"\
65         ftp://ftp.ar.freebsd.org        "Argentina"\
66         ftp://ftp.au.freebsd.org        "Australia"\
67         ftp://ftp2.au.freebsd.org       "Australia #2"\
68         ftp://ftp3.au.freebsd.org       "Australia #3"\
69         ftp://ftp.at.freebsd.org        "Austria"\
70         ftp://ftp2.at.freebsd.org       "Austria #2"\
71         ftp://ftp.br.freebsd.org        "Brazil"\
72         ftp://ftp2.br.freebsd.org       "Brazil #2"\
73         ftp://ftp3.br.freebsd.org       "Brazil #3"\
74         ftp://ftp4.br.freebsd.org       "Brazil #4"\
75         ftp://ftp5.br.freebsd.org       "Brazil #5"\
76         ftp://ftp6.br.freebsd.org       "Brazil #6"\
77         ftp://ftp7.br.freebsd.org       "Brazil #7"\
78         ftp://ftp.ca.freebsd.org        "Canada"\
79         ftp://ftp.cn.freebsd.org        "China"\
80         ftp://ftp2.cn.freebsd.org       "China #2"\
81         ftp://ftp.hr.freebsd.org        "Croatia"\
82         ftp://ftp.cz.freebsd.org        "Czech Republic"\
83         ftp://ftp.dk.freebsd.org        "Denmark"\
84         ftp://ftp2.dk.freebsd.org       "Denmark #2"\
85         ftp://ftp.ee.freebsd.org        "Estonia"\
86         ftp://ftp.fi.freebsd.org        "Finland"\
87         ftp://ftp.fr.freebsd.org        "France"\
88         ftp://ftp2.fr.freebsd.org       "IPv6 France #2"\
89         ftp://ftp3.fr.freebsd.org       "France #3"\
90         ftp://ftp4.fr.freebsd.org       "France #4"\
91         ftp://ftp5.fr.freebsd.org       "France #5"\
92         ftp://ftp6.fr.freebsd.org       "France #6"\
93         ftp://ftp8.fr.freebsd.org       "IPv6 France #8"\
94         ftp://ftp.de.freebsd.org        "Germany"\
95         ftp://ftp2.de.freebsd.org       "Germany #2"\
96         ftp://ftp3.de.freebsd.org       "Germany #3"\
97         ftp://ftp4.de.freebsd.org       "Germany #4"\
98         ftp://ftp5.de.freebsd.org       "Germany #5"\
99         ftp://ftp6.de.freebsd.org       "Germany #6"\
100         ftp://ftp7.de.freebsd.org       "Germany #7"\
101         ftp://ftp8.de.freebsd.org       "Germany #8"\
102         ftp://ftp.gr.freebsd.org        "Greece"\
103         ftp://ftp2.gr.freebsd.org       "Greece #2"\
104         ftp://ftp.hu.freebsd.org        "Hungary"\
105         ftp://ftp.is.freebsd.org        "Iceland"\
106         ftp://ftp.ie.freebsd.org        "Ireland"\
107         ftp://ftp2.ie.freebsd.org       "Ireland #2"\
108         ftp://ftp3.ie.freebsd.org       "Ireland #3"\
109         ftp://ftp.il.freebsd.org        "Israel"\
110         ftp://ftp.it.freebsd.org        "Italy"\
111         ftp://ftp.jp.freebsd.org        "Japan"\
112         ftp://ftp2.jp.freebsd.org       "Japan #2"\
113         ftp://ftp3.jp.freebsd.org       "Japan #3"\
114         ftp://ftp4.jp.freebsd.org       "Japan #4"\
115         ftp://ftp5.jp.freebsd.org       "Japan #5"\
116         ftp://ftp6.jp.freebsd.org       "Japan #6"\
117         ftp://ftp7.jp.freebsd.org       "Japan #7"\
118         ftp://ftp8.jp.freebsd.org       "Japan #8"\
119         ftp://ftp9.jp.freebsd.org       "Japan #9"\
120         ftp://ftp.kr.freebsd.org        "Korea"\
121         ftp://ftp2.kr.freebsd.org       "Korea #2"\
122         ftp://ftp.lt.freebsd.org        "Lithuania"\
123         ftp://ftp.nl.freebsd.org        "Netherlands"\
124         ftp://ftp2.nl.freebsd.org       "Netherlands #2"\
125         ftp://ftp.no.freebsd.org        "Norway"\
126         ftp://ftp3.no.freebsd.org       "Norway #3"\
127         ftp://ftp.pl.freebsd.org        "Poland"\
128         ftp://ftp2.pl.freebsd.org       "Poland #2"\
129         ftp://ftp5.pl.freebsd.org       "Poland #5"\
130         ftp://ftp.pt.freebsd.org        "Portugal"\
131         ftp://ftp2.pt.freebsd.org       "Portugal #2"\
132         ftp://ftp4.pt.freebsd.org       "Portugal #4"\
133         ftp://ftp.ro.freebsd.org        "Romania"\
134         ftp://ftp.ru.freebsd.org        "Russia"\
135         ftp://ftp2.ru.freebsd.org       "Russia #2"\
136         ftp://ftp3.ru.freebsd.org       "Russia #3"\
137         ftp://ftp4.ru.freebsd.org       "Russia #4"\
138         ftp://ftp.sg.freebsd.org        "Singapore"\
139         ftp://ftp.sk.freebsd.org        "Slovak Republic"\
140         ftp://ftp.si.freebsd.org        "Slovenia"\
141         ftp://ftp2.si.freebsd.org       "Slovenia #2"\
142         ftp://ftp.za.freebsd.org        "South Africa"\
143         ftp://ftp2.za.freebsd.org       "South Africa #2"\
144         ftp://ftp3.za.freebsd.org       "South Africa #3"\
145         ftp://ftp4.za.freebsd.org       "South Africa #4"\
146         ftp://ftp.es.freebsd.org        "Spain"\
147         ftp://ftp2.es.freebsd.org       "Spain #2"\
148         ftp://ftp3.es.freebsd.org       "Spain #3"\
149         ftp://ftp.se.freebsd.org        "Sweden"\
150         ftp://ftp2.se.freebsd.org       "Sweden #2"\
151         ftp://ftp3.se.freebsd.org       "Sweden #3"\
152         ftp://ftp4.se.freebsd.org       "Sweden #4"\
153         ftp://ftp5.se.freebsd.org       "Sweden #5"\
154         ftp://ftp.ch.freebsd.org        "Switzerland"\
155         ftp://ftp2.ch.freebsd.org       "Switzerland #2"\
156         ftp://ftp.tw.freebsd.org        "Taiwan"\
157         ftp://ftp2.tw.freebsd.org       "Taiwan #2"\
158         ftp://ftp3.tw.freebsd.org       "Taiwan #3"\
159         ftp://ftp4.tw.freebsd.org       "Taiwan #4"\
160         ftp://ftp6.tw.freebsd.org       "Taiwan #6"\
161         ftp://ftp11.tw.freebsd.org      "Taiwan #11"\
162         ftp://ftp.tr.freebsd.org        "Turkey"\
163         ftp://ftp2.tr.freebsd.org       "Turkey #2"\
164         ftp://ftp.uk.freebsd.org        "UK"\
165         ftp://ftp2.uk.freebsd.org       "UK #2"\
166         ftp://ftp3.uk.freebsd.org       "UK #3"\
167         ftp://ftp4.uk.freebsd.org       "UK #4"\
168         ftp://ftp5.uk.freebsd.org       "UK #5"\
169         ftp://ftp6.uk.freebsd.org       "UK #6"\
170         ftp://ftp.ua.freebsd.org        "Ukraine"\
171         ftp://ftp2.ua.freebsd.org       "Ukraine #2"\
172         ftp://ftp5.ua.freebsd.org       "Ukraine #5"\
173         ftp://ftp6.ua.freebsd.org       "Ukraine #6"\
174         ftp://ftp7.ua.freebsd.org       "Ukraine #7"\
175         ftp://ftp8.ua.freebsd.org       "Ukraine #8"\
176         ftp://ftp1.us.freebsd.org       "USA #1"\
177         ftp://ftp2.us.freebsd.org       "USA #2"\
178         ftp://ftp3.us.freebsd.org       "USA #3"\
179         ftp://ftp4.us.freebsd.org       "USA #4"\
180         ftp://ftp5.us.freebsd.org       "USA #5"\
181         ftp://ftp6.us.freebsd.org       "USA #6"\
182         ftp://ftp7.us.freebsd.org       "USA #7"\
183         ftp://ftp8.us.freebsd.org       "USA #8"\
184         ftp://ftp9.us.freebsd.org       "USA #9"\
185         ftp://ftp10.us.freebsd.org      "USA #10"\
186         ftp://ftp11.us.freebsd.org      "USA #11"\
187         ftp://ftp12.us.freebsd.org      "USA #12"\
188         ftp://ftp13.us.freebsd.org      "USA #13"\
189         ftp://ftp14.us.freebsd.org      "USA #14"\
190         ftp://ftp15.us.freebsd.org      "USA #15"\
191     2>&1 1>&3`
192 MIRROR_BUTTON=$?
193 exec 3>&-
194
195 BSDINSTALL_DISTSITE="$MIRROR/pub/FreeBSD/releases/`uname -m`/`uname -p`/`uname -r`"
196
197 case $MIRROR_BUTTON in
198 $DIALOG_CANCEL)
199         exit 1
200         ;;
201 $DIALOG_OK)
202         ;;
203 $DIALOG_EXTRA)
204         exec 3>&1
205         BSDINSTALL_DISTSITE=`dialog --backtitle "FreeBSD Installer" \
206             --title "Mirror Selection" \
207             --inputbox "Please enter the URL to an alternate FreeBSD mirror:" \
208             0 0 "$BSDINSTALL_DISTSITE" 2>&1 1>&3`
209         MIRROR_BUTTON=$?
210         exec 3>&-
211         test $MIRROR_BUTTON -eq 0 || exec $0 $@
212         ;;
213 esac
214
215 export BSDINSTALL_DISTSITE
216 echo $BSDINSTALL_DISTSITE >&2