ruby-build/libexec/ruby-package-fetch

72 lines
1.2 KiB
Text
Raw Permalink Normal View History

2011-10-18 14:07:05 -05:00
#!/usr/bin/env bash
set -e
usage() {
2011-10-19 12:49:10 -05:00
echo "usage: ruby-package fetch [--check] PACKAGE" >&2
2011-10-18 14:07:05 -05:00
exit 1
}
2011-10-19 12:49:10 -05:00
check() {
local url="$1"
set +e
curl -ILfs "$url" >/dev/null
local result="$?"
set -e
if [ "$result" -ne 0 ]; then
return 1
fi
}
download() {
local url="$1"
local filename="$2"
set +e
curl -Lfs "$url" > "$filename"
local result="$?"
set -e
if [ "$result" -ne 0 ]; then
return 1
elif [ ! -f "$filename" ]; then
return 1
else
echo "$filename"
fi
}
check=""
if [ "$1" = "--check" ]; then
check=1
shift
fi
package="$1"
if [ -z "$package" ]; then
2011-10-18 14:07:05 -05:00
usage
fi
2011-10-19 12:49:10 -05:00
package_name="${package}.$(ruby-package platform).rubypackage"
2011-10-18 14:07:05 -05:00
package_repo="${RUBY_PACKAGE_REPO%/}"
if [ -z "$ruby_package_repo" ]; then
package_repo="https://github.com/downloads/sstephenson/ruby-packages"
fi
2011-10-19 12:49:10 -05:00
package_url="${package_repo}/${package_name}"
2011-10-18 14:07:05 -05:00
2011-10-19 12:49:10 -05:00
if [ -n "$check" ]; then
check "$package_url" || {
echo "error: package \`$package' not found ($package_url)"
exit 1
} >&2
2011-10-18 14:07:05 -05:00
else
2011-10-19 12:49:10 -05:00
package_filename="${TMPDIR}/${package_name}.$$"
2011-10-19 13:34:55 -05:00
echo "Downloading $package_url..." >&2
2011-10-19 12:49:10 -05:00
download "$package_url" "$package_filename" || {
echo "error: couldn't download package \`$package' ($package_url)"
2011-10-19 12:49:10 -05:00
exit 1
} >&2
2011-10-18 14:07:05 -05:00
fi