mirror of
				https://github.com/nvm-sh/nvm.git
				synced 2025-10-31 10:15:53 +08:00 
			
		
		
		
	git, curl and wget now all in one installer
This commit is contained in:
		
							
								
								
									
										73
									
								
								install.sh
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								install.sh
									
									
									
									
									
								
							| @@ -2,34 +2,73 @@ | ||||
|  | ||||
| set -e | ||||
|  | ||||
| if [ ! "$NVM_SOURCE" ]; then | ||||
|   NVM_SOURCE="https://github.com/creationix/nvm.git" | ||||
| fi | ||||
| has() { | ||||
|   type "$1" > /dev/null 2>&1 | ||||
|   return $? | ||||
| } | ||||
|  | ||||
| if [ ! "$NVM_DIR" ]; then | ||||
| if [ -z "$NVM_DIR" ]; then | ||||
|   NVM_DIR="$HOME/.nvm" | ||||
| fi | ||||
|  | ||||
| if ! hash git 2>/dev/null; then | ||||
|   echo >&2 "You need to install git - visit http://git-scm.com/downloads" | ||||
|   echo >&2 "or, use install-gitless.sh instead." | ||||
|   exit 1 | ||||
| fi | ||||
| download_file() { | ||||
|   # download_file source destination | ||||
|   if has "curl"; then | ||||
|     curl --silent "$1" -o "$2" | ||||
|   elif has "wget"; then | ||||
|     wget --quiet "$1" -O "$2" | ||||
|   else | ||||
|     return 1 | ||||
|   fi | ||||
| } | ||||
|  | ||||
| if [ -d "$NVM_DIR" ]; then | ||||
|   echo "=> NVM is already installed in $NVM_DIR, trying to update" | ||||
|   echo -e "\r=> \c" | ||||
|   cd "$NVM_DIR" && git pull | ||||
| else | ||||
|   # Cloning to $NVM_DIR | ||||
| install_from_git() { | ||||
|   if [ -z "$NVM_SOURCE" ]; then | ||||
|     NVM_SOURCE="https://github.com/creationix/nvm.git" | ||||
|   fi | ||||
|  | ||||
|   if [ -d "$NVM_DIR/.git" ]; then | ||||
|     echo "=> NVM is already installed in $NVM_DIR, trying to update" | ||||
|     echo -e "\r=> \c" | ||||
|     cd "$NVM_DIR" && git pull | ||||
|   else | ||||
|     # Cloning to $NVM_DIR | ||||
|     mkdir -p "$NVM_DIR" | ||||
|     git clone "$NVM_SOURCE" "$NVM_DIR" | ||||
|   fi | ||||
| } | ||||
|  | ||||
| install_as_script() { | ||||
|   if [ -z "$NVM_SOURCE" ]; then | ||||
|     NVM_SOURCE="https://raw.github.com/creationix/nvm/master/nvm.sh" | ||||
|   fi | ||||
|  | ||||
|   # Downloading to $NVM_DIR | ||||
|   mkdir -p "$NVM_DIR" | ||||
|   git clone "$NVM_SOURCE" "$NVM_DIR" | ||||
|   if [ -d "$NVM_DIR/nvm.sh" ]; then | ||||
|     echo "=> NVM is already installed in $NVM_DIR, trying to update" | ||||
|   else | ||||
|     echo "=> Downloading NVM to '$NVM_DIR'" | ||||
|   fi | ||||
|   download_file "$NVM_SOURCE" "$NVM_DIR/nvm.sh" || { | ||||
|     echo >&2 "Failed.." | ||||
|     return 1 | ||||
|   } | ||||
| } | ||||
|  | ||||
| if has "git"; then | ||||
|  install_from_git | ||||
| else | ||||
|   install_as_script || { | ||||
|     echo >&2 -e "You need git, curl or wget to install NVM" | ||||
|     exit 1 | ||||
|   } | ||||
| fi | ||||
|  | ||||
| echo | ||||
|  | ||||
| # Detect profile file if not specified as environment variable (eg: PROFILE=~/.myprofile). | ||||
| if [ ! "$PROFILE" ]; then | ||||
| if [ -z "$PROFILE" ]; then | ||||
|   if [ -f "$HOME/.bash_profile" ]; then | ||||
|     PROFILE="$HOME/.bash_profile" | ||||
|   elif [ -f "$HOME/.zshrc" ]; then | ||||
|   | ||||
		Reference in New Issue
	
	Block a user