123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- #!/usr/bin/env bash
- source "$rvm_scripts_path/functions/manage/base_fetch"
- source "$rvm_scripts_path/functions/manage/base_install"
- source "$rvm_scripts_path/functions/manage/base_install_patches"
- source "$rvm_scripts_path/functions/manage/base_remove"
- __rvm_uninstall_ruby()
- {
- __rvm_remove_ruby uninstall
- }
- __rvm_reinstall_ruby()
- {
- export pristine_gems_filter="! gem.extensions.empty?"
- __rvm_remove_ruby reinstall &&
- __rvm_install_ruby "$@" &&
- __rvm_gemset_pristine_all "$rvm_ruby_string"
- }
- __rvm_gemset_pristine_all()
- {
- if (( ${rvm_skip_pristine_flag:-0} ))
- then return 0
- fi
- case "$rvm_ruby_string" in
- (mruby*) return 0 ;;
- esac
- \typeset -a destination_gemsets
- \typeset destination_gemset
- __rvm_read_lines destination_gemsets <(
- __rvm_list_gemset_strings | __rvm_grep -E "^$1(@.*)?$"
- )
- for destination_gemset in "${destination_gemsets[@]}"
- do __rvm_gemset_pristine "$destination_gemset"
- done
- }
- __rvm_manage_rubies()
- {
- \typeset manage_result bin_line current_ruby_string
- \typeset -a rubies
- rubies=()
- rvm_gemset_name=""
- rvm_ruby_selected_flag=0
- rvm_ruby_gem_home="${rvm_ruby_gem_home%%${rvm_gemset_separator:-"@"}*}"
- rvm_ruby_string="${rvm_ruby_string%%${rvm_gemset_separator:-"@"}*}"
- # Given list of ruby strings.
- if
- __rvm_string_match "${rubies_string:-}" "old:*"
- then
- \typeset _older_then
- _older_then=${rubies_string#old:}
- if
- [[ -z "${_older_then}" ]]
- then
- # minified https://github.com/mpapis/home_dotfiles/blob/master/bin/git-summary#L5-L50
- case "${_system_type}" in
- (Darwin) _older_then="$( __rvm_date -j -v6m +%F )" ;;
- (*) _older_then="$( __rvm_date --date="-6months" +%F )" ;;
- esac
- fi
- __rvm_read_lines rubies <(
- __rvm_cd "$rvm_rubies_path"
- # find on bsd does not have -not, we need to use \!
- __rvm_find . -maxdepth 1 -mindepth 1 -type d \! -newermt $_older_then 2>/dev/null | cut -c 3-
- )
- (( ${#rubies[*]} )) ||
- {
- rvm_warn "No rubies older then ${_older_then}."
- return 1
- }
- __rvm_ask_for "Are you SURE you wish to '$action' ${rubies[*]}?" yes || return $?
- elif
- [[ -n "${rubies_string:-}" && "${rubies_string}" != "all" ]]
- then
- if
- [[ "${rubies_string}" == *,* || -z "${rvm_ruby_string:-}" ]]
- then
- __rvm_custom_separated_array rubies , "${rubies_string}"
- else
- rubies=( "${rvm_ruby_string}" )
- fi
- elif
- [[ "$action" == "install" ]]
- then
- rvm_error 'Really? '"$action"', all? See "rvm list known" and limit the selection to something more sane please :)'
- return 1
- elif
- [[ -z "${rubies_string}" ]]
- then
- rvm_error 'Really? '"$action"', all? See "rvm list" and limit the selection to something more sane please :)'
- return 1
- else
- # explicit all && not install
- if
- (( ${rvm_force_flag:-0} == 0 )) &&
- [[ "$action" == "reinstall" || "$action" == "remove" || "$action" == "uninstall" ]]
- then
- __rvm_ask_for "Are you SURE you wish to '$action' all rubies?" yes || return $?
- fi
- __rvm_read_lines rubies <(
- __rvm_cd "$rvm_rubies_path"
- __rvm_find . -maxdepth 1 -mindepth 1 -type d 2>/dev/null | cut -c 3-
- )
- fi
- for rvm_ruby_string in "${rubies[@]}"
- do
- rvm_debug "${rvm_ruby_string} - $action"
- current_ruby_string="$rvm_ruby_string"
- if
- # in () so it does not mess with env. variables
- (
- rvm_hook="before_install"
- source "$rvm_scripts_path/hook"
- __rvm_${action}_ruby
- )
- then
- if [[ "$action" == "install" ]]
- then __rvm_record_install "$current_ruby_string"
- fi
- else
- : manage_result:${manage_result:=$?}
- fi
- done
- return "${manage_result:-0}"
- }
|