| 
									
										
										
										
											2016-07-26 02:03:00 +08:00
										 |  |  | ZSH_NVM_DIR=${0:a:h} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-30 07:05:39 +08:00
										 |  |  | [[ -z "$NVM_DIR" ]] && export NVM_DIR="$HOME/.nvm" | 
					
						
							| 
									
										
										
										
											2016-07-09 02:47:16 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-25 02:28:51 +08:00
										 |  |  | _zsh_nvm_rename_function() { | 
					
						
							|  |  |  |   test -n "$(declare -f $1)" || return | 
					
						
							|  |  |  |   eval "${_/$1/$2}" | 
					
						
							|  |  |  |   unset -f $1 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-08 20:39:46 +08:00
										 |  |  | _zsh_nvm_has() { | 
					
						
							|  |  |  |   type "$1" > /dev/null 2>&1 | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2016-07-08 20:42:00 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-09 02:43:09 +08:00
										 |  |  | _zsh_nvm_latest_release_tag() { | 
					
						
							| 
									
										
										
										
											2016-08-10 03:54:02 +08:00
										 |  |  |   echo $(cd "$NVM_DIR" && git fetch --quiet origin && git describe --abbrev=0 --tags --match "v[0-9]*" origin) | 
					
						
							| 
									
										
										
										
											2016-07-09 02:43:09 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2016-07-09 02:47:48 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | _zsh_nvm_install() { | 
					
						
							| 
									
										
										
										
											2016-07-09 05:41:04 +08:00
										 |  |  |   echo "Installing nvm..." | 
					
						
							| 
									
										
										
										
											2016-07-09 02:47:48 +08:00
										 |  |  |   git clone https://github.com/creationix/nvm.git "$NVM_DIR" | 
					
						
							| 
									
										
										
										
											2016-07-09 03:43:53 +08:00
										 |  |  |   $(cd "$NVM_DIR" && git checkout --quiet "$(_zsh_nvm_latest_release_tag)") | 
					
						
							| 
									
										
										
										
											2016-07-09 02:47:48 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2016-07-09 02:53:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-25 04:20:07 +08:00
										 |  |  | _zsh_nvm_load() { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Source nvm | 
					
						
							|  |  |  |   source "$NVM_DIR/nvm.sh" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Rename main nvm function | 
					
						
							|  |  |  |   _zsh_nvm_rename_function nvm _zsh_nvm_nvm | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Wrap nvm in our own function | 
					
						
							|  |  |  |   nvm() { | 
					
						
							|  |  |  |     case $1 in | 
					
						
							|  |  |  |       'upgrade') | 
					
						
							|  |  |  |         _zsh_nvm_upgrade | 
					
						
							|  |  |  |         ;; | 
					
						
							| 
									
										
										
										
											2016-07-27 06:20:32 +08:00
										 |  |  |       'revert') | 
					
						
							|  |  |  |         _zsh_nvm_revert | 
					
						
							|  |  |  |         ;; | 
					
						
							| 
									
										
										
										
											2016-07-25 04:20:07 +08:00
										 |  |  |       *) | 
					
						
							|  |  |  |         _zsh_nvm_nvm "$@" | 
					
						
							|  |  |  |         ;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-27 17:05:40 +08:00
										 |  |  | _zsh_nvm_lazy_load() { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Get all global node module binaries (including node) | 
					
						
							|  |  |  |   local node_globals=($(ls ~/.nvm/versions/*/*/bin/* | xargs basename | sort | uniq)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Add nvm | 
					
						
							|  |  |  |   node_globals+=('nvm') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Create function for each command | 
					
						
							|  |  |  |   for cmd in $node_globals; do | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # When called, unset all lazy loaders, load nvm then run current command | 
					
						
							|  |  |  |     eval "$cmd(){
 | 
					
						
							|  |  |  |       unset -f $node_globals | 
					
						
							|  |  |  |       _zsh_nvm_load | 
					
						
							|  |  |  |       $cmd \"\$@\" | 
					
						
							|  |  |  |     }"
 | 
					
						
							|  |  |  |   done | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-09 03:15:49 +08:00
										 |  |  | nvm_update() { | 
					
						
							| 
									
										
										
										
											2016-07-25 02:28:51 +08:00
										 |  |  |   echo 'Deprecated, please use `nvm upgrade`' | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | _zsh_nvm_upgrade() { | 
					
						
							| 
									
										
										
										
											2016-07-26 02:20:29 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   # Use default upgrade if it's built in | 
					
						
							| 
									
										
										
										
											2016-08-01 03:15:06 +08:00
										 |  |  |   if [[ -n "$(_zsh_nvm_nvm help | grep 'nvm upgrade')" ]]; then | 
					
						
							| 
									
										
										
										
											2016-07-26 02:20:29 +08:00
										 |  |  |     _zsh_nvm_nvm upgrade | 
					
						
							|  |  |  |     return | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Otherwise use our own | 
					
						
							| 
									
										
										
										
											2016-07-09 03:43:53 +08:00
										 |  |  |   local installed_version=$(cd "$NVM_DIR" && git describe --tags) | 
					
						
							| 
									
										
										
										
											2016-07-09 03:31:29 +08:00
										 |  |  |   echo "Installed version is $installed_version" | 
					
						
							| 
									
										
										
										
											2016-07-09 04:19:35 +08:00
										 |  |  |   echo "Checking latest version of nvm..." | 
					
						
							|  |  |  |   local latest_version=$(_zsh_nvm_latest_release_tag) | 
					
						
							| 
									
										
										
										
											2016-07-09 03:31:29 +08:00
										 |  |  |   if [[ "$installed_version" = "$latest_version" ]]; then | 
					
						
							|  |  |  |     echo "You're already up to date" | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     echo "Updating to $latest_version..." | 
					
						
							| 
									
										
										
										
											2016-07-26 02:03:00 +08:00
										 |  |  |     echo "$installed_version" > "$ZSH_NVM_DIR/previous_version" | 
					
						
							| 
									
										
										
										
											2016-07-22 03:05:02 +08:00
										 |  |  |     $(cd "$NVM_DIR" && git fetch --quiet && git checkout "$latest_version") | 
					
						
							| 
									
										
										
										
											2016-07-25 04:20:07 +08:00
										 |  |  |     _zsh_nvm_load | 
					
						
							| 
									
										
										
										
											2016-07-09 03:31:29 +08:00
										 |  |  |   fi | 
					
						
							| 
									
										
										
										
											2016-07-09 03:15:49 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-27 06:20:32 +08:00
										 |  |  | _zsh_nvm_previous_version() { | 
					
						
							|  |  |  |   cat "$ZSH_NVM_DIR/previous_version" 2>/dev/null | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | _zsh_nvm_revert() { | 
					
						
							|  |  |  |   local previous_version="$(_zsh_nvm_previous_version)" | 
					
						
							| 
									
										
										
										
											2016-08-01 03:15:06 +08:00
										 |  |  |   if [[ -n "$previous_version" ]]; then | 
					
						
							| 
									
										
										
										
											2016-07-27 06:20:32 +08:00
										 |  |  |     local installed_version=$(cd "$NVM_DIR" && git describe --tags) | 
					
						
							|  |  |  |     if [[ "$installed_version" = "$previous_version" ]]; then | 
					
						
							|  |  |  |       echo "Already reverted to $installed_version" | 
					
						
							|  |  |  |       return | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |     echo "Installed version is $installed_version" | 
					
						
							|  |  |  |     echo "Reverting to $previous_version..." | 
					
						
							|  |  |  |     $(cd "$NVM_DIR" && git checkout "$previous_version") | 
					
						
							|  |  |  |     _zsh_nvm_load | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     echo "No previous version found" | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-09 02:53:31 +08:00
										 |  |  | # Install nvm if it isn't already installed | 
					
						
							|  |  |  | [[ ! -f "$NVM_DIR/nvm.sh" ]] && _zsh_nvm_install | 
					
						
							| 
									
										
										
										
											2016-07-09 02:55:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-27 17:18:45 +08:00
										 |  |  | # If nvm is installed | 
					
						
							|  |  |  | if [[ -f "$NVM_DIR/nvm.sh" ]]; then | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Load it | 
					
						
							|  |  |  |   [[ "$NVM_LAZY_LOAD" == true ]] && _zsh_nvm_lazy_load || _zsh_nvm_load | 
					
						
							|  |  |  | fi |