scripts/functions: always prefer the mirror

Currently, the mirror can be used either:
 - as a fallback in case upstream is unavailable (default behavior)
 - as the preferred source for downloads

But the most common use-case seems to provide a truely-LAN mirror
to speed up downloads in big corpos', and/or provide a 'trusted'
source for the tarballs.

So, make the following changes;
 - if a mirror is specified, always try that before trying upstream

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
This commit is contained in:
Yann E. MORIN" 2011-08-02 23:11:25 +02:00
parent cba6269810
commit bb3519ad37
2 changed files with 5 additions and 24 deletions

View File

@ -37,17 +37,10 @@ config USE_MIRROR
*not* on your LAN, for example on another subnet of your company's
network, or a mirror on the Internet.
if USE_MIRROR
config PREFER_MIRROR
bool
prompt "Prefer the mirror"
help
Say 'Y' here if you prefer the LAN mirror over the upstream sources.
config MIRROR_BASE_URL
string
prompt "Base URL"
depends on USE_MIRROR
default "http://ymorin.is-a-geek.org/mirrors/"
help
This is the base URL searched in for tarballs.
@ -63,8 +56,6 @@ config MIRROR_BASE_URL
The mirror is available at:
http://ymorin.is-a-geek.org/mirrors/
endif # USE_MIRROR
config CONNECT_TIMEOUT
int
prompt "Connection timeout"

View File

@ -513,7 +513,7 @@ CT_SaveLocal() {
# Usage: CT_GetFile <basename> [.extension] <url> [url ...]
CT_GetFile() {
local ext
local url URLS LAN_URLS
local url URLS
local file="$1"
local first_ext
shift
@ -532,24 +532,14 @@ CT_GetFile() {
# Try to retrieve the file
CT_DoLog EXTRA "Retrieving '${file}'"
URLS="$@"
# Add URLs on the LAN mirror
LAN_URLS=
if [ "${CT_USE_MIRROR}" = "y" ]; then
CT_TestOrAbort "Please set the mirror base URL" -n "${CT_MIRROR_BASE_URL}"
LAN_URLS="${LAN_URLS} ${CT_MIRROR_BASE_URL}/${file%-*}"
LAN_URLS="${LAN_URLS} ${CT_MIRROR_BASE_URL}"
if [ "${CT_PREFER_MIRROR}" = "y" ]; then
CT_DoLog DEBUG "Pre-pending LAN mirror URLs"
URLS="${LAN_URLS} ${URLS}"
else
CT_DoLog DEBUG "Appending LAN mirror URLs"
URLS="${URLS} ${LAN_URLS}"
fi
URLS="${CT_MIRROR_BASE_URL}/${file%-*} ${CT_MIRROR_BASE_URL}"
fi
URLS+="${URLS:+ }${*}"
# Scan all URLs in turn, and try to grab a tarball from there
# Do *not* try git trees (ext=/.git), this is handled in a specific
# wrapper, below