diff options
| author | Xu Cheng | 2016-07-11 21:16:31 +0800 |
|---|---|---|
| committer | GitHub | 2016-07-11 21:16:31 +0800 |
| commit | 7508da2876c4839182d55b5754dded33e3e55cff (patch) | |
| tree | 780606570e81b04fcd8fe2e66ce63211001e80e5 /Library/Homebrew/utils/ruby.sh | |
| parent | 4a732494061c13ba6f0c2696b6bf3d16b374a2d2 (diff) | |
| parent | dff6bfde9a2b841b0b30eb5d54bee351b4594a89 (diff) | |
| download | brew-7508da2876c4839182d55b5754dded33e3e55cff.tar.bz2 | |
Merge pull request #404 from xu-cheng/vendor
vendor ruby
Diffstat (limited to 'Library/Homebrew/utils/ruby.sh')
| -rw-r--r-- | Library/Homebrew/utils/ruby.sh | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/Library/Homebrew/utils/ruby.sh b/Library/Homebrew/utils/ruby.sh new file mode 100644 index 000000000..6ff97b772 --- /dev/null +++ b/Library/Homebrew/utils/ruby.sh @@ -0,0 +1,86 @@ +origin-setup-ruby-path() { + if [[ -z "$HOMEBREW_DEVELOPER" ]] + then + unset HOMEBREW_RUBY_PATH + fi + + if [[ -z "$HOMEBREW_RUBY_PATH" ]] + then + if [[ -n "$HOMEBREW_OSX" ]] + then + HOMEBREW_RUBY_PATH="/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby" + else + HOMEBREW_RUBY_PATH="$(which ruby)" + if [[ -z "$HOMEBREW_RUBY_PATH" ]] + then + odie "No Ruby found, cannot proceed." + fi + fi + fi + + export HOMEBREW_RUBY_PATH +} + +setup-ruby-path() { + if [[ -z "$HOMEBREW_USE_VENDOR_RUBY" ]] + then + origin-setup-ruby-path + return + fi + + local vendor_dir + local vendor_ruby_current_version + local vendor_ruby_path + local ruby_version_major + + vendor_dir="$HOMEBREW_LIBRARY/Homebrew/vendor" + vendor_ruby_current_version="$vendor_dir/portable-ruby/current" + vendor_ruby_path="$vendor_ruby_current_version/bin/ruby" + + if [[ -z "$HOMEBREW_DEVELOPER" ]] + then + unset HOMEBREW_RUBY_PATH + fi + + if [[ -z "$HOMEBREW_RUBY_PATH" && "$HOMEBREW_COMMAND" != "vendor-install" ]] + then + if [[ -x "$vendor_ruby_path" ]] + then + HOMEBREW_RUBY_PATH="$vendor_ruby_path" + + if [[ $(readlink "$vendor_ruby_current_version") != "$(<"$vendor_dir/portable-ruby-version")" ]] + then + if ! brew vendor-install ruby --quiet + then + onoe "Failed to upgrade vendor Ruby." + fi + fi + else + if [[ -n "$HOMEBREW_OSX" ]] + then + HOMEBREW_RUBY_PATH="/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby" + else + HOMEBREW_RUBY_PATH="$(which ruby)" + fi + + if [[ -n "$HOMEBREW_RUBY_PATH" ]] + then + ruby_version_major="$("$HOMEBREW_RUBY_PATH" --version)" + ruby_version_major="${ruby_version_major#ruby }" + ruby_version_major="${ruby_version_major%%.*}" + fi + + if [[ "$ruby_version_major" != "2" ]] + then + brew vendor-install ruby --quiet + if [[ ! -x "$vendor_ruby_path" ]] + then + odie "Failed to install vendor Ruby." + fi + HOMEBREW_RUBY_PATH="$vendor_ruby_path" + fi + fi + fi + + export HOMEBREW_RUBY_PATH +} |
