123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- #!/usr/bin/env bash
- jruby_install_build_nailgun()
- {
- __rvm_cd "${rvm_src_path}/$rvm_ruby_string/tool/nailgun" &&
- case "$rvm_ruby_version" in
- 1.2*|1.3*)
- true
- ;;
- *)
- env "${rvm_configure_env[@]}" ./configure --prefix=$rvm_ruby_home
- ;;
- esac &&
- __rvm_make "${rvm_make_flags[@]}"
- }
- jruby_install_ant()
- {
- __rvm_log_command "ant.jar" "$rvm_ruby_string - #ant jar" __rvm_ant jar || return $?
- [[ -f "${rvm_src_path}/$rvm_ruby_string/bin/jruby" ]] ||
- {
- result=$?
- rvm_error "JRuby reported it was installed successfully, but RVM could not find proper installation,
- please check why '${rvm_src_path}/$rvm_ruby_string/bin/jruby' was not created,
- maybe here '$rvm_log_path/$rvm_ruby_string/ant.jar.log',
- also make sure to report an error here 'https://github.com/jruby/jruby/issues'
- about not returning non zero status in case of errors."
- return $result
- }
- if
- (( ${#rvm_configure_flags[@]} ))
- then
- __rvm_log_command "ant.jar.flags" "$rvm_ruby_string - #ant jar ${rvm_configure_flags[*]}" \
- __rvm_ant jar "${rvm_configure_flags[@]}" || return $?
- fi
- __rvm_log_command "ant.cext" "$rvm_ruby_string - #ant cext" __rvm_ant cext "${rvm_configure_flags[@]}" ||
- rvm_warn "cext is known to fail please report here: https://jira.codehaus.org/browse/JRUBY"
- __rvm_version_compare "$rvm_ruby_version" -ge "1.7.0" ||
- __rvm_log_command "nailgun" "$rvm_ruby_string - #nailgun" jruby_install_build_nailgun ||
- return $?
- }
- jruby_install_mvn_command()
- {
- __rvm_log_command "$mvn_label" "$rvm_ruby_string - #$mvn_label" "${mvn_command[@]}" || return $?
- }
- jruby_install_mvn()
- {
- \typeset -a mvn_command
- \typeset mvn_label
- mvn_command=( "${1:-mvn}" )
- mvn_label="{1:-mvn}"
- mvn_label="${mvn_command##*/}"
- jruby_install_mvn_command || return $?
- if
- (( ${#rvm_configure_flags[@]} ))
- then
- mvn_command+=( "${rvm_configure_flags[@]}" )
- mvn_label+="_flags"
- jruby_install_mvn_command || return $?
- fi
- }
- jruby_install_mvnw()
- {
- jruby_install_mvn "${rvm_src_path}/$rvm_ruby_string/mvnw" || return $?
- }
- jruby_install_check_java()
- {
- builtin command -v java > /dev/null ||
- {
- printf "%b" "java must be installed and in PATH for JRuby."
- return 1
- }
- }
- jruby_install_check_jruby_home()
- {
- if
- [[ -n "$JRUBY_HOME" ]]
- then
- printf "%b" "You have environment variable JRUBY_HOME set, please unset it before installing/using JRuby."
- return 2
- fi
- }
- jruby_install_check_java_home()
- {
- if
- [[ -z "${JAVA_HOME:-}" ]]
- then
- export JAVA_HOME="$(
- cd "${rvm_scripts_path}/extras/java_read_properties"
- java ReadProperties java.home
- )"
- if
- [[ -n "$JAVA_HOME" &&
- -x "$JAVA_HOME/../bin/javac" &&
- -f "$JAVA_HOME/../lib/tools.jar"
- ]]
- then
- rvm_debug "Detected JAVA_HOME=$JAVA_HOME has JDK level up"
- JAVA_HOME="${JAVA_HOME%/*}" # cd ..
- fi
- rvm_warn "\$JAVA_HOME was empty, setting up JAVA_HOME=$JAVA_HOME, if it fails try setting JAVA_HOME to something sane and try again."
- fi
- }
- jruby_install()
- {
- __rvm_setup_compile_environment "${rvm_ruby_string}" || return $?
- jruby_install_check_java || return $?
- jruby_install_check_jruby_home || return $?
- jruby_install_check_java_home
- __rvm_cd "${rvm_src_path}"
- rvm_ruby_tag="${rvm_ruby_version}"
- __rvm_fetch_ruby || return $?
- __rvm_cd "${rvm_src_path}/$rvm_ruby_string"
- __rvm_apply_patches
- \typeset method
- method=$( jruby_installation_method "${rvm_ruby_string}" "${rvm_ruby_version}" ) || return $?
- jruby_install_$method || return $?
- __rvm_rm_rf "$rvm_ruby_home" && \command \mkdir -p "$rvm_ruby_home" &&
- __rvm_log_command "install" "$rvm_ruby_string - #installing to $rvm_ruby_home" \
- __rvm_cp -Rf "${rvm_src_path}/$rvm_ruby_string"/{bin,lib} "$rvm_ruby_home"/ || return $?
- case ${rvm_ruby_string} in
- jruby-head*|jruby-1.7.*)
- (
- __rvm_cd "$rvm_ruby_home/bin/"
- for binary in irb ruby gem
- do
- [[ -f "${binary}" ]] || ln -fs "j${binary}" "${binary}"
- done
- )
- ;;
- *)
- (
- __rvm_cd "$rvm_ruby_home/bin/"
- for binary in jirb jruby jgem
- do
- ln -fs "$binary" "${binary#j}"
- done
- )
- ;;
- esac
- chmod +x "$rvm_ruby_home/bin/jruby"
- __rvm_initial_gemsets_create "$rvm_ruby_home/bin/ruby"
- case ${rvm_ruby_string} in
- jruby-head*|jruby-1.7.*)
- binaries=()
- ;;
- *)
- binaries=(jrubyc jirb_swing jirb jgem rdoc ri spec autospec testrb ast generate_yaml_index.rb rake)
- ;;
- esac
- __rvm_post_install
- __rvm_fetch_ruby_cleanup
- }
|