mirror of
				https://github.com/nvm-sh/nvm.git
				synced 2025-10-31 10:15:53 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			102 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| cleanup () {
 | |
|   unset -f setup cleanup die
 | |
|   unset _PROFILE
 | |
|   rm -f .bashrc .bash_profile .zshrc .profile test_profile > /dev/null 2>&1
 | |
| }
 | |
| die () { echo $@ ; cleanup ; exit 1; }
 | |
| 
 | |
| NVM_ENV=testing . ../../install.sh
 | |
| 
 | |
| setup () {
 | |
|   touch .bashrc
 | |
|   touch .bash_profile
 | |
|   touch .zshrc
 | |
|   touch .profile
 | |
|   touch test_profile
 | |
| }
 | |
| 
 | |
| #Let's hack $HOME
 | |
| HOME="."
 | |
| 
 | |
| setup
 | |
| 
 | |
| #Let's force $SHELL to be bash
 | |
| SHELL="/bin/bash"
 | |
| 
 | |
| # $SHELL is set to bash and .bashrc is there, it must be detected
 | |
| _PROFILE=$(nvm_detect_profile)
 | |
| [ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$HOME/.bashrc: _$HOME/.bashrc\n" \
 | |
|                                        echo "_\$_PROFILE: _$_PROFILE\n" \
 | |
|                                        die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc"
 | |
| 
 | |
| #Let's force $SHELL to be zsh
 | |
| SHELL="/usr/bin/zsh"
 | |
| 
 | |
| # $SHELL is set to zsh and .zshrc is there, it must be detected
 | |
| _PROFILE=$(nvm_detect_profile)
 | |
| [ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$HOME/.zshrc: _$HOME/.zshrc\n" \
 | |
|                                       echo "_\$_PROFILE: _$_PROFILE\n" \
 | |
|                                       die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc"
 | |
| 
 | |
| 
 | |
| # if we unset shell it looks for the files
 | |
| unset SHELL
 | |
| 
 | |
| # $PROFILE points to a valid file, its path must be returned
 | |
| PROFILE="test_profile"
 | |
| _PROFILE=$(nvm_detect_profile)
 | |
| [ "_$_PROFILE" = "_$PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
 | |
|                                   echo "_\$PROFILE: _$PROFILE\n" \
 | |
|                                   die "nvm_detect_profile didn't pick \$PROFILE"
 | |
| 
 | |
| # $PROFILE doesn't point to a valid file, its path must not be returned
 | |
| PROFILE="invalid_profile"
 | |
| _PROFILE=$(nvm_detect_profile)
 | |
| [ "_$_PROFILE" != "_$PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
 | |
|                                    echo "_\$PROFILE: _$PROFILE\n" \
 | |
|                                    die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file"
 | |
| 
 | |
| 
 | |
| # Below are tests for when $PROFILE is undefined
 | |
| rm test_profile
 | |
| unset PROFILE
 | |
| 
 | |
| # It should favor .profile if file exists
 | |
| _PROFILE=$(nvm_detect_profile)
 | |
| [ "_$_PROFILE" = "_$HOME/.profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
 | |
|                                         echo "_\$PROFILE: _$PROFILE\n" \
 | |
|                                         die "nvm_detect_profile should have selected .profile"
 | |
| 
 | |
| rm .profile
 | |
| # Otherwise, it should favor .bashrc if file exists
 | |
| _PROFILE=$(nvm_detect_profile)
 | |
| [ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
 | |
|                                        echo "_\$PROFILE: _$PROFILE\n" \
 | |
|                                        die "nvm_detect_profile should have selected .bashrc"
 | |
| 
 | |
| rm .bashrc
 | |
| # Otherwise, it should favor .bash_profile if file exists
 | |
| _PROFILE=$(nvm_detect_profile)
 | |
| [ "_$_PROFILE" = "_$HOME/.bash_profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
 | |
|                                              echo "_\$PROFILE: _$PROFILE\n" \
 | |
|                                              die "nvm_detect_profile should have selected .bash_profile"
 | |
| 
 | |
| rm .bash_profile
 | |
| # Otherwise, it should favor .zshrc if file exists
 | |
| _PROFILE=$(nvm_detect_profile)
 | |
| [ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
 | |
|                                       echo "_\$PROFILE: _$PROFILE\n" \
 | |
|                                       die "nvm_detect_profile should have selected .zshrc"
 | |
| 
 | |
| rm .zshrc
 | |
| # It should be empty if none is found
 | |
| _PROFILE=$(nvm_detect_profile)
 | |
| [ -z "$_PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
 | |
|                       echo "_\$PROFILE: _$PROFILE\n" \
 | |
|                       die "nvm_detect_profile should have echo'ed an empty value"
 | |
| 
 | |
| 
 | |
| cleanup
 |