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:
		| @@ -1,71 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
|  |  | ||||||
| set -e |  | ||||||
|  |  | ||||||
| fatalExit (){ |  | ||||||
|   echo "$@" && exit 1; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| if [ -z "$NVM_SOURCE" ]; then |  | ||||||
|   NVM_SOURCE="https://raw.github.com/creationix/nvm/master/nvm.sh" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| if [ -z "$NVM_DIR" ]; then |  | ||||||
|   NVM_DIR="$HOME/.nvm" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # Downloading to $NVM_DIR |  | ||||||
| mkdir -p "$NVM_DIR" |  | ||||||
| echo -e "\r=> Downloading... \c" |  | ||||||
|  |  | ||||||
| # Detect if curl or wget is installed to download NVM_SOURCE |  | ||||||
| if type curl > /dev/null 2>&1; then |  | ||||||
|   curl --silent "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || fatalExit "Failed downloading $NVM_SOURCE"; |  | ||||||
| elif type wget > /dev/null 2>&1; then  |  | ||||||
|   wget --quiet "$NVM_SOURCE" -O "$NVM_DIR/nvm.sh" || fatalExit "Failed downloading $NVM_SOURCE"; |  | ||||||
| else |  | ||||||
|   fatalExit "Must have curl or wget to install nvm"; |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| echo "Downloaded" |  | ||||||
|  |  | ||||||
| echo |  | ||||||
|  |  | ||||||
| # Detect profile file if not specified as environment variable (eg: PROFILE=~/.myprofile). |  | ||||||
| if [ -z "$PROFILE" ]; then |  | ||||||
|   if [ -f "$HOME/.bash_profile" ]; then |  | ||||||
|     PROFILE="$HOME/.bash_profile" |  | ||||||
|   elif [ -f "$HOME/.zshrc" ]; then |  | ||||||
|     PROFILE="$HOME/.zshrc" |  | ||||||
|   elif [ -f "$HOME/.profile" ]; then |  | ||||||
|     PROFILE="$HOME/.profile" |  | ||||||
|   fi |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| SOURCE_STR="[ -s \"$NVM_DIR/nvm.sh\" ] && . \"$NVM_DIR/nvm.sh\"  # This loads NVM" |  | ||||||
|  |  | ||||||
| if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then |  | ||||||
|   if [ -z $PROFILE ]; then |  | ||||||
|     echo "=> Profile not found. Tried ~/.bash_profile ~/.zshrc and ~/.profile." |  | ||||||
|     echo "=> Create one of them and run this script again" |  | ||||||
|   else |  | ||||||
|     echo "=> Profile $PROFILE not found" |  | ||||||
|     echo "=> Create it (touch $PROFILE) and run this script again" |  | ||||||
|   fi |  | ||||||
|   echo "   OR" |  | ||||||
|   echo "=> Append the following line to the correct file yourself:" |  | ||||||
|   echo |  | ||||||
|   echo "   $SOURCE_STR" |  | ||||||
|   echo |  | ||||||
| else |  | ||||||
|   if ! grep -qc 'nvm.sh' $PROFILE; then |  | ||||||
|     echo "=> Appending source string to $PROFILE" |  | ||||||
|     echo "" >> "$PROFILE" |  | ||||||
|     echo $SOURCE_STR >> "$PROFILE" |  | ||||||
|   else |  | ||||||
|     echo "=> Source string already in $PROFILE" |  | ||||||
|   fi |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| echo "=> Close and reopen your terminal to start using NVM" |  | ||||||
|  |  | ||||||
							
								
								
									
										73
									
								
								install.sh
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								install.sh
									
									
									
									
									
								
							| @@ -2,34 +2,73 @@ | |||||||
|  |  | ||||||
| set -e | set -e | ||||||
|  |  | ||||||
| if [ ! "$NVM_SOURCE" ]; then | has() { | ||||||
|   NVM_SOURCE="https://github.com/creationix/nvm.git" |   type "$1" > /dev/null 2>&1 | ||||||
| fi |   return $? | ||||||
|  | } | ||||||
|  |  | ||||||
| if [ ! "$NVM_DIR" ]; then | if [ -z "$NVM_DIR" ]; then | ||||||
|   NVM_DIR="$HOME/.nvm" |   NVM_DIR="$HOME/.nvm" | ||||||
| fi | fi | ||||||
|  |  | ||||||
| if ! hash git 2>/dev/null; then | download_file() { | ||||||
|   echo >&2 "You need to install git - visit http://git-scm.com/downloads" |   # download_file source destination | ||||||
|   echo >&2 "or, use install-gitless.sh instead." |   if has "curl"; then | ||||||
|   exit 1 |     curl --silent "$1" -o "$2" | ||||||
| fi |   elif has "wget"; then | ||||||
|  |     wget --quiet "$1" -O "$2" | ||||||
|  |   else | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  |  | ||||||
| if [ -d "$NVM_DIR" ]; then | install_from_git() { | ||||||
|   echo "=> NVM is already installed in $NVM_DIR, trying to update" |   if [ -z "$NVM_SOURCE" ]; then | ||||||
|   echo -e "\r=> \c" |     NVM_SOURCE="https://github.com/creationix/nvm.git" | ||||||
|   cd "$NVM_DIR" && git pull |   fi | ||||||
| else |  | ||||||
|   # Cloning to $NVM_DIR |   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" |   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 | fi | ||||||
|  |  | ||||||
| echo | echo | ||||||
|  |  | ||||||
| # Detect profile file if not specified as environment variable (eg: PROFILE=~/.myprofile). | # 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 |   if [ -f "$HOME/.bash_profile" ]; then | ||||||
|     PROFILE="$HOME/.bash_profile" |     PROFILE="$HOME/.bash_profile" | ||||||
|   elif [ -f "$HOME/.zshrc" ]; then |   elif [ -f "$HOME/.zshrc" ]; then | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user