diff options
| author | Xu Cheng | 2016-06-28 23:41:28 +0800 | 
|---|---|---|
| committer | Xu Cheng | 2016-07-11 21:12:56 +0800 | 
| commit | 534bf08ec33c89115d8061a9d1845e67f9a6cbb6 (patch) | |
| tree | f00491ba7c72030f29f227700615d2f25c676423 /Library/Homebrew/utils/ruby.sh | |
| parent | a35e3f1fc183af98451f92eda2c5e42c328e36ba (diff) | |
| download | brew-534bf08ec33c89115d8061a9d1845e67f9a6cbb6.tar.bz2 | |
brew.sh: new HOMEBREW_RUBY_PATH resolution logic
* Use vendor Ruby if it's present
* Install vendor Ruby for system without Ruby 2.x
Diffstat (limited to 'Library/Homebrew/utils/ruby.sh')
| -rw-r--r-- | Library/Homebrew/utils/ruby.sh | 57 | 
1 files changed, 57 insertions, 0 deletions
diff --git a/Library/Homebrew/utils/ruby.sh b/Library/Homebrew/utils/ruby.sh new file mode 100644 index 000000000..4b8e58f01 --- /dev/null +++ b/Library/Homebrew/utils/ruby.sh @@ -0,0 +1,57 @@ +setup-ruby-path() { +  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 +}  | 
