mirror of
				https://github.com/nvm-sh/nvm.git
				synced 2025-11-01 02:35:51 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| cleanup () {
 | |
|   rm -rf "$npm_config_prefix/lib" >/dev/null 2>&1
 | |
|   unset npm_config_prefix
 | |
| 
 | |
|   rm -f npm
 | |
|   PATH="$ORIGINAL_PATH"
 | |
| 
 | |
|   unset -f setup cleanup die
 | |
|   unset message ORIGINAL_PATH
 | |
| }
 | |
| die () { echo $@ ; cleanup ; exit 1; }
 | |
| 
 | |
| NVM_ENV=testing . ../../install.sh
 | |
| 
 | |
| setup () {
 | |
|   ORIGINAL_PATH="$PATH"
 | |
| 
 | |
|   npm_config_prefix="$(pwd)"
 | |
|   export npm_config_prefix
 | |
|   mkdir -p "$npm_config_prefix/lib"
 | |
| }
 | |
| 
 | |
| 
 | |
| setup
 | |
| 
 | |
| npm install -g nop >/dev/null || die 'nvm_check_global_modules cannot be tested because `npm` cannot install the `nop` package'
 | |
| message=$(nvm_check_global_modules)
 | |
| [ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed"
 | |
| 
 | |
| npm uninstall -g nop >/dev/null
 | |
| message=$(nvm_check_global_modules)
 | |
| [ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm had no global modules installed"
 | |
| 
 | |
| # Faking an installation of npm
 | |
| mkdir -p "$npm_config_prefix/lib/node_modules/npm"
 | |
| cat <<'JSON' >"$npm_config_prefix/lib/node_modules/npm/package.json"
 | |
| { "name": "npm", "version": "0.0.1fake" }
 | |
| JSON
 | |
| 
 | |
| message=$(nvm_check_global_modules)
 | |
| [ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm had only itself installed as a global module"
 | |
| 
 | |
| # Faking the absence of npm
 | |
| PATH=".:$PATH"
 | |
| touch npm
 | |
| chmod +x npm
 | |
| 
 | |
| message=$(nvm_check_global_modules)
 | |
| [ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm was unavailable"
 | |
| 
 | |
| 
 | |
| cleanup
 |