Import changes from ruby-build v20150818

This commit is contained in:
Yamashita, Yuu 2015-08-25 15:37:31 +09:00
parent 0c81c97926
commit 0f288f2462
5 changed files with 53 additions and 17 deletions

View file

@ -47,8 +47,7 @@ fi
eval "$(python-build --lib)" eval "$(python-build --lib)"
usage() { usage() {
# We can remove the sed fallback once pyenv 0.4.0 is widely available. pyenv-help install 2>/dev/null
pyenv-help install 2>/dev/null || sed -ne '/^#/!q;s/.//;s/.//;1,4d;p' < "$0"
[ -z "$1" ] || exit "$1" [ -z "$1" ] || exit "$1"
} }

View file

@ -18,8 +18,7 @@ if [ "$1" = "--complete" ]; then
fi fi
usage() { usage() {
# We can remove the sed fallback once pyenv 0.4.0 is widely available pyenv-help uninstall 2>/dev/null
pyenv-help uninstall 2>/dev/null || sed -ne '/^#/!q;s/.//;s/.//;1,4d;p' < "$0"
[ -z "$1" ] || exit "$1" [ -z "$1" ] || exit "$1"
} }

View file

@ -12,7 +12,7 @@
# -g/--debug Build a debug version # -g/--debug Build a debug version
# #
PYTHON_BUILD_VERSION="20150519" PYTHON_BUILD_VERSION="20150818"
set -E set -E
exec 3<&2 # preserve original stderr at fd 3 exec 3<&2 # preserve original stderr at fd 3
@ -1132,12 +1132,13 @@ require_llvm() {
local llvm_version="$1" local llvm_version="$1"
if [ "$(uname -s)" = "Darwin" ] && [ "$(osx_version)" -ge 1010 ]; then if [ "$(uname -s)" = "Darwin" ] && [ "$(osx_version)" -ge 1010 ]; then
if [[ "$PYTHON_CONFIGURE_OPTS" != *--llvm-* ]]; then if [[ "$PYTHON_CONFIGURE_OPTS" != *--llvm-* ]]; then
if [ "$llvm_version" = "3.2" ]; then case "$llvm_version" in
3.2 )
package_option python configure --prebuilt-name="llvm-3.2-x86_64-apple-darwin13.tar.bz2" package_option python configure --prebuilt-name="llvm-3.2-x86_64-apple-darwin13.tar.bz2"
else ;;
local llvm_prefix="$(brew --prefix llvm 2>/dev/null || true)" 3.5 )
local llvm_config="${llvm_prefix}/bin/llvm-config" local llvm_config="$(locate_llvm "$llvm_version")"
if [ -x "$llvm_config" ]; then if [ -n "$llvm_config" ]; then
package_option python configure --llvm-config="$llvm_config" package_option python configure --llvm-config="$llvm_config"
else else
{ echo { echo
@ -1148,16 +1149,31 @@ require_llvm() {
colorize 1 "TO FIX THE PROBLEM" colorize 1 "TO FIX THE PROBLEM"
echo ": Install Homebrew's llvm package with this" echo ": Install Homebrew's llvm package with this"
echo -n "command: " echo -n "command: "
colorize 4 "brew install llvm" colorize 4 "brew tap homebrew/versions ; brew install llvm35"
echo echo
} >&3 } >&3
return 1 return 1
fi fi
fi ;;
esac
fi fi
fi fi
} }
locate_llvm() {
local llvm_version="$1"
local package llvm_config
shopt -s nullglob
for package in `brew list 2>/dev/null | grep "^llvm"`; do
llvm_config="$(echo "$(brew --prefix "$package")/bin/llvm-config"*)"
if [ -n "$llvm_config" ] && [[ "$("$llvm_config" --version)" = "$llvm_version"* ]]; then
echo "$llvm_config"
break
fi
done
shopt -u nullglob
}
require_java() { require_java() {
local java="$(command -v java || true)" local java="$(command -v java || true)"

View file

@ -2,7 +2,7 @@
load test_helper load test_helper
@test "not enought arguments for python-build" { @test "not enough arguments for python-build" {
# use empty inline definition so nothing gets built anyway # use empty inline definition so nothing gets built anyway
local definition="${TMP}/build-definition" local definition="${TMP}/build-definition"
echo '' > "$definition" echo '' > "$definition"

View file

@ -149,39 +149,61 @@ OUT
@test "not enough arguments for pyenv-install" { @test "not enough arguments for pyenv-install" {
stub_python_build stub_python_build
stub pyenv-help 'install : true'
run pyenv-install run pyenv-install
assert_failure assert_failure
assert_output_contains 'Usage: pyenv install' unstub pyenv-help
} }
@test "too many arguments for pyenv-install" { @test "too many arguments for pyenv-install" {
stub_python_build stub_python_build
stub pyenv-help 'install : true'
run pyenv-install 3.4.1 3.4.2 run pyenv-install 3.4.1 3.4.2
assert_failure assert_failure
assert_output_contains 'Usage: pyenv install' unstub pyenv-help
} }
@test "show help for pyenv-install" { @test "show help for pyenv-install" {
stub_python_build stub_python_build
stub pyenv-help 'install : true'
run pyenv-install -h run pyenv-install -h
assert_success assert_success
unstub pyenv-help
}
@test "pyenv-install has usage help preface" {
run head "$(which pyenv-install)"
assert_output_contains 'Usage: pyenv install' assert_output_contains 'Usage: pyenv install'
} }
@test "not enough arguments pyenv-uninstall" { @test "not enough arguments pyenv-uninstall" {
stub pyenv-help 'uninstall : true'
run pyenv-uninstall run pyenv-uninstall
assert_failure assert_failure
assert_output_contains 'Usage: pyenv uninstall' unstub pyenv-help
} }
@test "too many arguments for pyenv-uninstall" { @test "too many arguments for pyenv-uninstall" {
stub pyenv-help 'uninstall : true'
run pyenv-uninstall 3.4.1 3.4.2 run pyenv-uninstall 3.4.1 3.4.2
assert_failure assert_failure
assert_output_contains 'Usage: pyenv uninstall' unstub pyenv-help
} }
@test "show help for pyenv-uninstall" { @test "show help for pyenv-uninstall" {
stub pyenv-help 'uninstall : true'
run pyenv-uninstall -h run pyenv-uninstall -h
assert_success assert_success
unstub pyenv-help
}
@test "pyenv-uninstall has usage help preface" {
run head "$(which pyenv-uninstall)"
assert_output_contains 'Usage: pyenv uninstall' assert_output_contains 'Usage: pyenv uninstall'
} }