mirror of
				https://github.com/nvm-sh/nvm.git
				synced 2025-10-31 18:25:52 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			104 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| assert_ok() {
 | ||
|   local FUNCTION=$1
 | ||
|   shift
 | ||
| 
 | ||
|   $($FUNCTION $@) || die '"'"$FUNCTION $@"'" should have succeeded, but failed'
 | ||
| }
 | ||
| 
 | ||
| assert_not_ok() {
 | ||
|   local FUNCTION=$1
 | ||
|   shift
 | ||
| 
 | ||
|   ! $($FUNCTION $@) || die '"'"$FUNCTION $@"'" should have failed, but succeeded'
 | ||
| }
 | ||
| 
 | ||
| strip_colors() {
 | ||
|   while read -r line; do
 | ||
|     echo "$line" | LC_ALL=C command sed 's/\[[ -?]*[@-~]//g'
 | ||
|   done
 | ||
| }
 | ||
| 
 | ||
| make_echo() {
 | ||
|   echo "#!/bin/sh" > "$1"
 | ||
|   echo "echo \"${2}\"" > "$1"
 | ||
|   chmod a+x "$1"
 | ||
| }
 | ||
| 
 | ||
| make_fake_node() {
 | ||
|   local VERSION
 | ||
|   VERSION="${1-}"
 | ||
|   [ -n "${VERSION}" ] || return 1
 | ||
| 
 | ||
|   local FORMATTED_VERSION
 | ||
|   FORMATTED_VERSION="$(nvm_format_version "${VERSION}")"
 | ||
| 
 | ||
|   local BIN_PATH
 | ||
|   BIN_PATH="$(nvm_version_path "${FORMATTED_VERSION}")/bin"
 | ||
|   [ "${BIN_PATH}" != "/bin" ] || {
 | ||
|     echo >&2 'nvm_version_path was empty'
 | ||
|     return 5
 | ||
|   }
 | ||
| 
 | ||
|   mkdir -p "${BIN_PATH}" || {
 | ||
|     echo >&2 'unable to make bin dir'
 | ||
|     return 2
 | ||
|   }
 | ||
| 
 | ||
|   make_echo "${BIN_PATH}/node" "${VERSION}" || {
 | ||
|     echo >&2 'unable to make fake node bin'
 | ||
|     return 3
 | ||
|   }
 | ||
| 
 | ||
|   nvm_is_version_installed "${FORMATTED_VERSION}" || {
 | ||
|     echo >&2 'fake node is not installed'
 | ||
|     return 4
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| make_fake_iojs() {
 | ||
|   local VERSION
 | ||
|   VERSION="${1-}"
 | ||
|   [ -n "${VERSION}" ] || return 1
 | ||
| 
 | ||
|   local FORMATTED_VERSION
 | ||
|   FORMATTED_VERSION="$(nvm_format_version "iojs-${VERSION}")"
 | ||
| 
 | ||
|   local BIN_PATH
 | ||
|   BIN_PATH="$(nvm_version_path "${FORMATTED_VERSION}")/bin"
 | ||
|   [ "${BIN_PATH}" != "/bin" ] || {
 | ||
|     echo >&2 'nvm_version_path was empty'
 | ||
|     return 5
 | ||
|   }
 | ||
| 
 | ||
|   mkdir -p "${BIN_PATH}" || {
 | ||
|     echo >&2 'unable to make bin dir'
 | ||
|     return 2
 | ||
|   }
 | ||
| 
 | ||
|   make_echo "${BIN_PATH}/node" "${VERSION}" || {
 | ||
|     echo >&2 'unable to make fake node bin'
 | ||
|     return 3
 | ||
|   }
 | ||
|   make_echo "${BIN_PATH}/iojs" "${VERSION}" || {
 | ||
|     echo >&2 'unable to make fake iojs bin'
 | ||
|     return 3
 | ||
|   }
 | ||
| 
 | ||
|   nvm_is_version_installed "${FORMATTED_VERSION}" || {
 | ||
|     echo >&2 'fake iojs is not installed'
 | ||
|     return 4
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| watch() {
 | ||
|   $@ &
 | ||
|   local JOB
 | ||
|   JOB=$!
 | ||
|   while true; do sleep 15; >&2 echo '* ping *'; done &
 | ||
|   wait $JOB;
 | ||
|   local EXIT_CODE
 | ||
|   EXIT_CODE=$?
 | ||
|   kill %2;
 | ||
|   return $EXIT_CODE
 | ||
| }
 |