#!/usr/bin/env bash

# need additional step to not redefine variables value if already set
typeset old_rvm_verbose_flag old_rvm_debug_flag >/dev/null 2>/dev/null
old_rvm_verbose_flag=${rvm_verbose_flag:-0}
old_rvm_debug_flag=${rvm_debug_flag:-0}

# silence Zsh redefinitions
typeset rvm_verbose_flag rvm_debug_flag hooks >/dev/null 2>/dev/null

true rvm_verbose_flag:${rvm_verbose_flag:=${old_rvm_verbose_flag}} \
  rvm_debug_flag:${rvm_debug_flag:=${old_rvm_debug_flag}} rvm_hook:${rvm_hook:=}

if
  [[ -n "$rvm_hook" ]]
then
  hooks=( "$rvm_hooks_path")
  [[ "$PWD/.rvm/hooks" == "$rvm_hooks_path" ]] ||
    hooks+=( "$PWD/.rvm/hooks" )

  _hooks_list=($(
    __rvm_find -L "${hooks[@]}" -iname "$rvm_hook*" -type f 2>/dev/null
  ))

  for hook in "${_hooks_list[@]}"
  do
    if [[ -x "${hook}" || "${hook##*/}" == "$rvm_hook" ]]
    then
      rvm_debug "Running $hook"
      __rvm_conditionally_do_with_env . "${hook}" >&2
    fi
  done
fi

unset rvm_hook hooks _hooks_list hook
