mirror of
				https://github.com/nvm-sh/nvm.git
				synced 2025-10-31 18:25:52 +08:00 
			
		
		
		
	[New] Install bash programmble completions automatically
This commit is contained in:
		
				
					committed by
					
						 Jordan Harband
						Jordan Harband
					
				
			
			
				
	
			
			
			
						parent
						
							49e8068271
						
					
				
				
					commit
					1ffa41886a
				
			
							
								
								
									
										29
									
								
								install.sh
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								install.sh
									
									
									
									
									
								
							| @@ -294,6 +294,8 @@ nvm_do_install() { | |||||||
|   INSTALL_DIR="$(nvm_install_dir)" |   INSTALL_DIR="$(nvm_install_dir)" | ||||||
|  |  | ||||||
|   SOURCE_STR="\nexport NVM_DIR=\"$INSTALL_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\"  # This loads nvm\n" |   SOURCE_STR="\nexport NVM_DIR=\"$INSTALL_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\"  # This loads nvm\n" | ||||||
|  |   COMPLETION_STR="[ -s \"\$NVM_DIR/bash_completion\" ] && \\. \"\$NVM_DIR/bash_completion\"  # This loads nvm bash_completion\n" | ||||||
|  |   BASH_OR_ZSH=false | ||||||
|  |  | ||||||
|   if [ -z "${NVM_PROFILE-}" ] ; then |   if [ -z "${NVM_PROFILE-}" ] ; then | ||||||
|     echo "=> Profile not found. Tried ${NVM_PROFILE} (as defined in \$PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." |     echo "=> Profile not found. Tried ${NVM_PROFILE} (as defined in \$PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." | ||||||
| @@ -303,12 +305,28 @@ nvm_do_install() { | |||||||
|     echo "=> Append the following lines to the correct file yourself:" |     echo "=> Append the following lines to the correct file yourself:" | ||||||
|     command printf "${SOURCE_STR}" |     command printf "${SOURCE_STR}" | ||||||
|   else |   else | ||||||
|  |     case "${NVM_PROFILE-}" in | ||||||
|  |       ".bashrc" | ".bash_profile" | ".zshrc") | ||||||
|  |         BASH_OR_ZSH=true | ||||||
|  |       ;; | ||||||
|  |     esac | ||||||
|     if ! command grep -qc '/nvm.sh' "$NVM_PROFILE"; then |     if ! command grep -qc '/nvm.sh' "$NVM_PROFILE"; then | ||||||
|       echo "=> Appending source string to $NVM_PROFILE" |       echo "=> Appending nvm source string to $NVM_PROFILE" | ||||||
|       command printf "$SOURCE_STR" >> "$NVM_PROFILE" |       command printf "${SOURCE_STR}" >> "$NVM_PROFILE" | ||||||
|     else |     else | ||||||
|       echo "=> Source string already in ${NVM_PROFILE}" |       echo "=> nvm source string already in ${NVM_PROFILE}" | ||||||
|     fi |     fi | ||||||
|  |     # shellcheck disable=SC2016 | ||||||
|  |     if ${BASH_OR_ZSH} && ! command grep -qc '$NVM_DIR/bash_completion' "$NVM_PROFILE"; then | ||||||
|  |       echo "=> Appending bash_completion source string to $NVM_PROFILE" | ||||||
|  |       command printf "$COMPLETION_STR" >> "$NVM_PROFILE" | ||||||
|  |     else | ||||||
|  |       echo "=> bash_completion source string already in ${NVM_PROFILE}" | ||||||
|  |     fi | ||||||
|  |   fi | ||||||
|  |   if ${BASH_OR_ZSH} && [ -z "${NVM_PROFILE-}" ] ; then | ||||||
|  |     echo "=> Please also append the following lines to the if you are using bash/zsh shell:" | ||||||
|  |     command printf "${COMPLETION_STR}" | ||||||
|   fi |   fi | ||||||
|  |  | ||||||
|   # Source nvm |   # Source nvm | ||||||
| @@ -322,7 +340,10 @@ nvm_do_install() { | |||||||
|   nvm_reset |   nvm_reset | ||||||
|  |  | ||||||
|   echo "=> Close and reopen your terminal to start using nvm or run the following to use it now:" |   echo "=> Close and reopen your terminal to start using nvm or run the following to use it now:" | ||||||
|   command printf "$SOURCE_STR" |   command printf "${SOURCE_STR}" | ||||||
|  |   if ${BASH_OR_ZSH} ; then | ||||||
|  |     command printf " && ${COMPLETION_STR}" | ||||||
|  |   fi | ||||||
| } | } | ||||||
|  |  | ||||||
| # | # | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user