You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							95 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							95 lines
						
					
					
						
							2.1 KiB
						
					
					
				#!/usr/bin/env bash | 
						|
 | 
						|
# bash completion for Node Version Manager (NVM) | 
						|
 | 
						|
if ! command -v nvm &> /dev/null; then | 
						|
  return | 
						|
fi | 
						|
 | 
						|
__nvm_generate_completion() { | 
						|
  declare current_word | 
						|
  current_word="${COMP_WORDS[COMP_CWORD]}" | 
						|
  # shellcheck disable=SC2207 | 
						|
  COMPREPLY=($(compgen -W "$1" -- "${current_word}")) | 
						|
  return 0 | 
						|
} | 
						|
 | 
						|
__nvm_commands() { | 
						|
  declare current_word | 
						|
  declare command | 
						|
 | 
						|
  current_word="${COMP_WORDS[COMP_CWORD]}" | 
						|
 | 
						|
  COMMANDS=' | 
						|
    help install uninstall use run exec | 
						|
    alias unalias reinstall-packages | 
						|
    current list ls list-remote ls-remote | 
						|
    install-latest-npm | 
						|
    cache deactivate unload | 
						|
    version version-remote which' | 
						|
 | 
						|
  if [ ${#COMP_WORDS[@]} == 4 ]; then | 
						|
 | 
						|
    command="${COMP_WORDS[COMP_CWORD - 2]}" | 
						|
    case "${command}" in | 
						|
      alias) __nvm_installed_nodes ;; | 
						|
    esac | 
						|
 | 
						|
  else | 
						|
 | 
						|
    case "${current_word}" in | 
						|
      -*) __nvm_options ;; | 
						|
      *) __nvm_generate_completion "${COMMANDS}" ;; | 
						|
    esac | 
						|
 | 
						|
  fi | 
						|
} | 
						|
 | 
						|
__nvm_options() { | 
						|
  OPTIONS='' | 
						|
  __nvm_generate_completion "${OPTIONS}" | 
						|
} | 
						|
 | 
						|
__nvm_installed_nodes() { | 
						|
  __nvm_generate_completion "$(nvm_ls) $(__nvm_aliases)" | 
						|
} | 
						|
 | 
						|
__nvm_aliases() { | 
						|
  declare aliases | 
						|
  aliases="" | 
						|
  if [ -d "${NVM_DIR}/alias" ]; then | 
						|
    aliases="$(cd "${NVM_DIR}/alias" && command find "${PWD}" -type f | command sed "s:${PWD}/::")" | 
						|
  fi | 
						|
  echo "${aliases} node stable unstable iojs" | 
						|
} | 
						|
 | 
						|
__nvm_alias() { | 
						|
  __nvm_generate_completion "$(__nvm_aliases)" | 
						|
} | 
						|
 | 
						|
__nvm() { | 
						|
  declare previous_word | 
						|
  previous_word="${COMP_WORDS[COMP_CWORD - 1]}" | 
						|
 | 
						|
  case "${previous_word}" in | 
						|
    use | run | exec | ls | list | uninstall) __nvm_installed_nodes ;; | 
						|
    alias | unalias) __nvm_alias ;; | 
						|
    *) __nvm_commands ;; | 
						|
  esac | 
						|
 | 
						|
  return 0 | 
						|
} | 
						|
 | 
						|
# complete is a bash builtin, but recent versions of ZSH come with a function | 
						|
# called bashcompinit that will create a complete in ZSH. If the user is in | 
						|
# ZSH, load and run bashcompinit before calling the complete function. | 
						|
if [[ -n ${ZSH_VERSION-} ]]; then | 
						|
  autoload -U +X bashcompinit && bashcompinit | 
						|
  autoload -U +X compinit && if [[ ${ZSH_DISABLE_COMPFIX-} = true ]]; then | 
						|
    compinit -u | 
						|
  else | 
						|
    compinit | 
						|
  fi | 
						|
fi | 
						|
 | 
						|
complete -o default -F __nvm nvm
 | 
						|
 |