Commit 302a822d by Sam Stephenson

Try to download files from RUBY_BUILD_MIRROR_URL first

parent 5d2e4360
......@@ -179,14 +179,20 @@ retrieve_url() {
fetch_tarball() {
local package_name="$1"
local package_url="$2"
local mirror_url
local checksum="${package_url#*\#}"
if [ -n "$checksum" ]; then
package_url="${package_url%%#*}"
if [ -n "$RUBY_BUILD_MIRROR_URL" ]; then
mirror_url="${RUBY_BUILD_MIRROR_URL}/$checksum"
fi
fi
local package_filename="${package_name}.tar.gz"
symlink_tarball_from_cache "$package_filename" "$checksum" ||
download_tarball "$mirror_url" "$package_filename" "$checksum" ||
download_tarball "$package_url" "$package_filename" "$checksum"
{ tar xzvf "$package_filename"
......@@ -195,34 +201,34 @@ fetch_tarball() {
}
symlink_tarball_from_cache() {
if [ -n "$RUBY_BUILD_CACHE_PATH" ]; then
local package_filename="$1"
local cached_package_filename="${RUBY_BUILD_CACHE_PATH}/$package_filename"
local checksum="$2"
[ -n "$RUBY_BUILD_CACHE_PATH" ] || return 1
if verify_checksum "$cached_package_filename" "$checksum"; then
ln -s "$cached_package_filename" "$package_filename" >&4 2>&1
return 0
fi
fi
return 1
local package_filename="$1"
local cached_package_filename="${RUBY_BUILD_CACHE_PATH}/$package_filename"
local checksum="$2"
{ verify_checksum "$cached_package_filename" "$checksum"
ln -s "$cached_package_filename" "$package_filename"
} >&4 2>&1 || return 1
}
download_tarball() {
local package_url="$1"
[ -n "$package_url" ] || return 1
local package_filename="$2"
local checksum="$3"
echo "Downloading ${package_url}..." >&2
{ retrieve_url "$package_url" > "$package_filename"
verify_checksum "$package_filename" "$checksum"
} >&4 2>&1
} >&4 2>&1 || return 1
if [ -n "$RUBY_BUILD_CACHE_PATH" ]; then
local cached_package_filename="${RUBY_BUILD_CACHE_PATH}/$package_filename"
{ mv "$package_filename" "$cached_package_filename"
ln -s "$cached_package_filename" "$package_filename"
} >&4 2>&1
} >&4 2>&1 || return 1
fi
}
......@@ -546,6 +552,12 @@ else
unset RUBY_BUILD_CACHE_PATH
fi
if [ -z "$RUBY_BUILD_MIRROR_URL" ]; then
RUBY_BUILD_MIRROR_URL="http://cloud.github.com/downloads/sstephenson/ruby-build-download-mirror"
else
RUBY_BUILD_MIRROR_URL="${RUBY_BUILD_MIRROR_URL%/}"
fi
SEED="$(date "+%Y%m%d%H%M%S").$$"
LOG_PATH="${TMP}/ruby-build.${SEED}.log"
RUBY_BIN="${PREFIX_PATH}/bin/ruby"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment