Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.117.7.226
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : nvm_detect_profile
#!/bin/sh

setup () {
  HOME="."
  NVM_ENV=testing . ../../install.sh
  touch ".bashrc"
  touch ".bash_profile"
  touch ".zshrc"
  touch ".profile"
  touch "test_profile"
}

cleanup () {
  unset HOME
  unset NVM_ENV
  unset NVM_DETECT_PROFILE
  unset -f setup cleanup die
  rm -f ".bashrc" ".bash_profile" ".zshrc" ".profile" "test_profile" > "/dev/null" 2>&1
}

die () { echo "$@" '$NVM_DETECT_PROFILE:' "$NVM_DETECT_PROFILE"; cleanup; exit 1; }

setup

#
# Confirm profile detection via $SHELL works and that $PROFILE overrides profile detection
#

# .bashrc should be detected for bash
NVM_DETECT_PROFILE="$(SHELL="/bin/bash"; unset PROFILE; nvm_detect_profile)"
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then
  die "nvm_detect_profile didn't pick \$HOME/.bashrc for bash"
fi

# $PROFILE should override .bashrc profile detection
NVM_DETECT_PROFILE="$(SHELL="/bin/bash"; PROFILE="test_profile"; nvm_detect_profile)"
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then
  die "nvm_detect_profile ignored \$PROFILE"
fi

# .zshrc should be detected for zsh
NVM_DETECT_PROFILE="$(SHELL="/usr/bin/zsh"; unset PROFILE; nvm_detect_profile)"
if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then
  die "nvm_detect_profile didn't pick \$HOME/.zshrc for zsh"
fi

# $PROFILE should override .zshrc profile detection
NVM_DETECT_PROFILE="$(SHELL="/usr/bin/zsh"; PROFILE="test_profile"; nvm_detect_profile)"
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then
 die "nvm_detect_profile ignored \$PROFILE"
fi


#
# Confirm $PROFILE is only returned when it points to a valid file
#

# $PROFILE is a valid file
NVM_DETECT_PROFILE="$(PROFILE="test_profile"; nvm_detect_profile)"
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then
  die "nvm_detect_profile didn't pick \$PROFILE when it was a valid file"
fi

# $PROFILE is not a valid file
rm "test_profile"
NVM_DETECT_PROFILE="$(PROFILE="test_profile"; nvm_detect_profile)"
if [ "$NVM_DETECT_PROFILE" = "test_profile" ]; then
  die "nvm_detect_profile picked \$PROFILE when it was an invalid file"
fi

#
# When profile detection fails via both $PROFILE and $SHELL, profile detection should select based on the existence of
# one of the following files is the following order: .profile, .bashrc, .bash_profile, .zshrc and
# return an empty value if everything fails
#

# It should favor .profile if file exists
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
if [ "$NVM_DETECT_PROFILE" != "$HOME/.profile" ]; then
  die "nvm_detect_profile should have selected .profile"
fi

# Otherwise, it should favor .bashrc if file exists
rm ".profile"
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then
  die "nvm_detect_profile should have selected .bashrc"
fi

# Otherwise, it should favor .bash_profile if file exists
rm ".bashrc"
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bash_profile" ]; then
  die "nvm_detect_profile should have selected .bash_profile"
fi

# Otherwise, it should favor .zshrc if file exists
rm ".bash_profile"
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then
  die "nvm_detect_profile should have selected .zshrc"
fi

# It should be empty if none is found
rm ".zshrc"
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
if [ ! -z "$NVM_DETECT_PROFILE" ]; then
  die "nvm_detect_profile should have returned an empty value"
fi

cleanup
© 2025 GrazzMean