mirror of
				https://github.com/nvm-sh/nvm.git
				synced 2025-10-31 18:25:52 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			93 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| \. ../../../nvm.sh
 | |
| 
 | |
| FILE="$NVM_DIR/default-packages"
 | |
| 
 | |
| die () { echo "$@" ; cleanup ; exit 1; }
 | |
| setup () {
 | |
|   if [ -f $FILE ]; then
 | |
|     ORIG_DEFAULT_PACKAGES=$(cat $FILE)
 | |
|     mkdir -p ./tmp/ ||:
 | |
|     mv $FILE ./tmp/default-packages ||:
 | |
|   fi
 | |
|   touch $FILE
 | |
| }
 | |
| cleanup () {
 | |
|   if [ "$ORIG_DEFAULT_PACKAGES" != "" ]; then
 | |
|     rm -rf ./tmp/
 | |
|     echo "$ORIG_DEFAULT_PACKAGES" > $FILE
 | |
|   fi
 | |
| }
 | |
| 
 | |
| setup
 | |
| 
 | |
| cat > $FILE << EOF
 | |
| rimraf
 | |
| object-inspect@1.0.2
 | |
| 
 | |
| # commented-package
 | |
| 
 | |
| stevemao/left-pad
 | |
| EOF
 | |
| 
 | |
| DEFAULT_PKGS="$(nvm_get_default_packages)"
 | |
| EXPECTED_PKGS='rimraf object-inspect@1.0.2 stevemao/left-pad'
 | |
| [ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "1: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<"
 | |
| 
 | |
| cleanup
 | |
| 
 | |
| setup
 | |
| 
 | |
| cat > $FILE << EOF
 | |
| rimraf
 | |
| not~a~package~name
 | |
| mkdirp
 | |
| EOF
 | |
| 
 | |
| DEFAULT_PKGS="$(nvm_get_default_packages)"
 | |
| EXPECTED_PKGS='rimraf not~a~package~name mkdirp'
 | |
| [ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "2: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<"
 | |
| 
 | |
| cleanup
 | |
| 
 | |
| setup
 | |
| 
 | |
| cat > $FILE << EOF
 | |
| rimraf
 | |
| not~a~package~name
 | |
| mkdirp
 | |
| EOF
 | |
| printf %s "$(cat "${FILE}")" > $FILE # strip trailing newline
 | |
| 
 | |
| DEFAULT_PKGS="$(nvm_get_default_packages)"
 | |
| EXPECTED_PKGS='rimraf not~a~package~name mkdirp'
 | |
| [ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "3: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<"
 | |
| 
 | |
| cleanup
 | |
| 
 | |
| setup
 | |
| 
 | |
| cat > $FILE << EOF
 | |
| object-inspect @ 1.0.2
 | |
| rimraf
 | |
| EOF
 | |
| 
 | |
| DEFAULT_PKGS="$(nvm_get_default_packages 2>&1 >/dev/null)"
 | |
| EXPECTED_PKGS="Only one package per line is allowed in the $FILE file. Please remove any lines with multiple space-separated values."
 | |
| [ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "4: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<"
 | |
| 
 | |
| cleanup
 | |
| 
 | |
| setup
 | |
| 
 | |
| rm -rf $FILE
 | |
| 
 | |
| DEFAULT_PKGS="$(nvm_get_default_packages)"
 | |
| EXPECTED_PKGS=''
 | |
| [ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "5: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<"
 | |
| 
 | |
| touch $FILE
 | |
| 
 | |
| cleanup
 |