123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- #!/usr/bin/env bash
- ree_transform_configure_flags()
- {
- \typeset flag
- \typeset -a new_flags
- new_flags=()
- for flag in "${rvm_configure_flags[@]}"
- do
- new_flags+=( -c "${flag}" )
- done
- rvm_configure_flags=( "${new_flags[@]}" )
- }
- ree_install()
- {
- if
- [[ -n "$(echo "$rvm_ruby_version" | __rvm_awk '/^1\.8/{print}')" ]] && (( rvm_head_flag == 0 ))
- then
- ruby="ree-|ruby-1.8.|ruby-1.8.7-p|ruby-1.8.7-p374"
- __rvm_ensure_has_mri_ruby "$ruby" &&
- ruby="$(__rvm_mri_ruby "$ruby")" ||
- return $?
- rvm_log "Installing Ruby Enterprise Edition from source to: $rvm_ruby_home"
- __rvm_cd "${rvm_src_path}"
- if
- [[ -d "${rvm_src_path}/$rvm_ruby_string" ]] &&
- [[ -x "${rvm_src_path}/$rvm_ruby_string/installer" ]]
- then
- rvm_log "It appears that the archive has already been extracted. Skipping extract (use reinstall to do fresh installation)."
- else
- rvm_log "$rvm_ruby_string - #fetching ($rvm_ruby_package_file)"
- if
- "$rvm_scripts_path/fetch" "$rvm_ruby_url"
- then
- true
- else
- result=$?
- rvm_error "There has been an error while trying to fetch the source. \nHalting the installation."
- return $result
- fi
- __rvm_log_command "extract" "$rvm_ruby_string - #extracting $rvm_ruby_package_file to ${rvm_src_path}/$rvm_ruby_string" \
- __rvm_package_extract "${rvm_archives_path}/$rvm_ruby_package_file.$rvm_archive_extension" "${rvm_src_path}/" ||
- case $? in
- 199)
- rvm_error "\nUnrecognized archive format '$archive_format'"
- return 199
- ;;
- *)
- rvm_error "There has been an error while trying to extract the source. Halting the installation."
- return 1
- ;;
- esac
- __rvm_rm_rf "${rvm_src_path}/$rvm_ruby_string"
- \command \mv "${rvm_src_path}/$rvm_ruby_package_file" "${rvm_src_path}/$rvm_ruby_string"
- fi
- __rvm_cd "${rvm_src_path}/$rvm_ruby_string"
- __rvm_setup_compile_environment "${rvm_ruby_string}"
- #TODO: wait, what? Investigate line smell.
- mkdir -p "${rvm_ruby_home}/lib/ruby/gems/1.8/gems"
- ree_transform_configure_flags
- #TODO: are there any other versions then 1.8.6 || 1.8.7
- if
- [[ "Darwin" == "${_system_type}" ]] &&
- [[ "1.8.6" == "$rvm_ruby_version" || "1.8.7" == "$rvm_ruby_version" ]] &&
- [[ " ${rvm_ree_options[*]} " != *" --no-tcmalloc "* ]]
- then
- rvm_ree_options+=( --no-tcmalloc )
- fi
- __rvm_db "${rvm_ruby_interpreter}_configure_flags" "db_configure_flags"
- if [[ -n "${ZSH_VERSION:-}" ]]
- then rvm_configure_flags=( ${=db_configure_flags} "${rvm_configure_flags[@]}" )
- else rvm_configure_flags=( ${db_configure_flags} "${rvm_configure_flags[@]}" )
- fi
- __rvm_apply_patches "${rvm_src_path}/$rvm_ruby_string/source"
- result=$?
- if (( result == 0 )) && [[ "${_system_arch}" == "x86_64" ]]
- then
- __rvm_apply_patches "${rvm_src_path}/$rvm_ruby_string" lib64
- result=$?
- fi
- __rvm_apply_patches "${rvm_src_path}/$rvm_ruby_string" ruby-binary-shebang
- if (( result > 0 ))
- then
- rvm_error "There has been an error while trying to apply patches to ree. \nHalting the installation."
- return $result
- fi
- __rvm_log_command "install" "$rvm_ruby_string - #installing" \
- __rvm_with "$ruby" env \
- "${rvm_configure_env[@]}" ./installer -a "$rvm_rubies_path/$rvm_ruby_string" "${rvm_ree_options[@]}" "${rvm_configure_flags[@]}" ||
- return $?
- [[ -x "$rvm_rubies_path/$rvm_ruby_string"/bin/ruby ]] ||
- {
- rvm_error "There has been an error while trying to run the ree installer - bin/ruby was not created,
- check the log file: $( __rvm_ls -1t "${rvm_log_path}/${rvm_ruby_string:-}"/*_install.log | __rvm_tail -n 1 )"
- return 11
- }
- __rvm_initial_gemsets_create "$rvm_ruby_home/bin/ruby" &&
- __rvm_post_install
- else
- __rvm_db "${rvm_ruby_interpreter}_${rvm_ruby_version}_repo_url" "rvm_ruby_url"
- if [[ -z "$rvm_ruby_url" ]] ; then
- rvm_error "rvm does not know the rvm repo url for '${rvm_ruby_interpreter}_${rvm_ruby_version}'"
- result=1
- else
- rvm_ruby_repo_url="$rvm_ruby_url"
- __rvm_setup_compile_environment "${rvm_ruby_string}"
- __rvm_install_source $*
- fi
- fi
- }
|