diff --git a/nvm.sh b/nvm.sh index 6dc779e..71c151c 100644 --- a/nvm.sh +++ b/nvm.sh @@ -461,9 +461,10 @@ nvm_find_up() { nvm_find_nvmrc() { local dir - dir="$(nvm_find_up '.nvmrc')" - if [ -e "${dir}/.nvmrc" ]; then - nvm_echo "${dir}/.nvmrc" + local rcfile="${1:-.nvmrc}" + dir="$(nvm_find_up "${rcfile}")" + if [ -e "${dir}/${rcfile}" ]; then + nvm_echo "${dir}/${rcfile}" fi } @@ -553,7 +554,13 @@ EOF nvm_rc_version() { export NVM_RC_VERSION='' local NVMRC_PATH - NVMRC_PATH="$(nvm_find_nvmrc)" + + if [ -n "$1" ]; then + NVMRC_PATH="$(nvm_find_nvmrc "$1")" + else + NVMRC_PATH="$(nvm_find_nvmrc)" + fi + if [ ! -e "${NVMRC_PATH}" ]; then if [ "${NVM_SILENT:-0}" -ne 1 ]; then nvm_err "No .nvmrc file found" @@ -3223,6 +3230,7 @@ nvm() { local PROVIDED_REINSTALL_PACKAGES_FROM local REINSTALL_PACKAGES_FROM local SKIP_DEFAULT_PACKAGES + local NVM_RC_PATH while [ $# -ne 0 ]; do case "$1" in @@ -3317,6 +3325,10 @@ nvm() { SKIP_DEFAULT_PACKAGES=true shift ;; + --config=*) + NVM_RC_PATH="${1#--config=}" + shift + ;; *) break # stop parsing args ;; @@ -3338,7 +3350,7 @@ nvm() { shift fi else - nvm_rc_version + nvm_rc_version "$NVM_RC_PATH" if [ $version_not_provided -eq 1 ] && [ -z "${NVM_RC_VERSION}" ]; then unset NVM_RC_VERSION >&2 nvm --help @@ -3693,6 +3705,7 @@ nvm() { local NVM_LTS local IS_VERSION_FROM_NVMRC IS_VERSION_FROM_NVMRC=0 + local NVM_RC_PATH while [ $# -ne 0 ]; do case "$1" in @@ -3704,6 +3717,10 @@ nvm() { --) ;; --lts) NVM_LTS='*' ;; --lts=*) NVM_LTS="${1##--lts=}" ;; + --config=*) + NVM_RC_PATH="${1#--config=}" + shift + ;; --*) ;; *) if [ -n "${1-}" ]; then @@ -3717,7 +3734,7 @@ nvm() { if [ -n "${NVM_LTS-}" ]; then VERSION="$(nvm_match_version "lts/${NVM_LTS:-*}")" elif [ -z "${PROVIDED_VERSION-}" ]; then - NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version + NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version "$NVM_RC_PATH" if [ -n "${NVM_RC_VERSION-}" ]; then PROVIDED_VERSION="${NVM_RC_VERSION}" IS_VERSION_FROM_NVMRC=1 @@ -3827,6 +3844,7 @@ nvm() { local NVM_SILENT local NVM_SILENT_ARG local NVM_LTS + local NVM_RC_PATH while [ $# -gt 0 ]; do case "$1" in --silent) @@ -3836,6 +3854,10 @@ nvm() { ;; --lts) NVM_LTS='*' ; shift ;; --lts=*) NVM_LTS="${1##--lts=}" ; shift ;; + --config=*) + NVM_RC_PATH="${1#--config=}" + shift + ;; *) if [ -n "$1" ]; then break @@ -3847,7 +3869,7 @@ nvm() { done if [ $# -lt 1 ] && [ -z "${NVM_LTS-}" ]; then - NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version && has_checked_nvmrc=1 + NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version "$NVM_RC_PATH" && has_checked_nvmrc=1 if [ -n "${NVM_RC_VERSION-}" ]; then VERSION="$(nvm_version "${NVM_RC_VERSION-}")" ||: fi @@ -3865,7 +3887,7 @@ nvm() { if [ "_${VERSION:-N/A}" = '_N/A' ] && ! nvm_is_valid_version "${provided_version}"; then provided_version='' if [ $has_checked_nvmrc -ne 1 ]; then - NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version && has_checked_nvmrc=1 + NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version "$NVM_RC_PATH" && has_checked_nvmrc=1 fi provided_version="${NVM_RC_VERSION}" IS_VERSION_FROM_NVMRC=1 @@ -3903,11 +3925,16 @@ nvm() { "exec") local NVM_SILENT local NVM_LTS + local NVM_RC_PATH while [ $# -gt 0 ]; do case "$1" in --silent) NVM_SILENT=1 ; shift ;; --lts) NVM_LTS='*' ; shift ;; --lts=*) NVM_LTS="${1##--lts=}" ; shift ;; + --config=*) + NVM_RC_PATH="${1#--config=}" + shift + ;; --) break ;; --*) nvm_err "Unsupported option \"$1\"." @@ -3931,7 +3958,7 @@ nvm() { elif [ -n "${provided_version}" ]; then VERSION="$(nvm_version "${provided_version}")" ||: if [ "_${VERSION}" = '_N/A' ] && ! nvm_is_valid_version "${provided_version}"; then - NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version && has_checked_nvmrc=1 + NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version "$NVM_RC_PATH" && has_checked_nvmrc=1 provided_version="${NVM_RC_VERSION}" unset NVM_RC_VERSION VERSION="$(nvm_version "${provided_version}")" ||: @@ -4055,16 +4082,21 @@ nvm() { "which") local NVM_SILENT local provided_version + local NVM_RC_PATH while [ $# -ne 0 ]; do case "${1}" in --silent) NVM_SILENT=1 ;; + --config=*) + NVM_RC_PATH="${1#--config=}" + shift + ;; --) ;; *) provided_version="${1-}" ;; esac shift done if [ -z "${provided_version-}" ]; then - NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version + NVM_SILENT="${NVM_SILENT:-0}" nvm_rc_version "$NVM_RC_PATH" if [ -n "${NVM_RC_VERSION}" ]; then provided_version="${NVM_RC_VERSION}" VERSION=$(nvm_version "${NVM_RC_VERSION}") ||: