mirror of
				https://github.com/nvm-sh/nvm.git
				synced 2025-11-04 13:21:29 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.0 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}"
 | 
						|
  else
 | 
						|
    rm "${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 \`${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
 |