[Refactor] Speedup nvm_list_aliases()
diff --git a/nvm.sh b/nvm.sh
index 23b539a..9299467 100644
--- a/nvm.sh
+++ b/nvm.sh
@@ -747,25 +747,42 @@
NVM_ALIAS_DIR="$(nvm_alias_path)"
command mkdir -p "${NVM_ALIAS_DIR}/lts"
- local ALIAS_PATH
- for ALIAS_PATH in "${NVM_ALIAS_DIR}/${ALIAS}"*; do
- NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}"
- done
+ (
+ local ALIAS_PATH
+ for ALIAS_PATH in "${NVM_ALIAS_DIR}/${ALIAS}"*; do
+ NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}" &
+ done
+ wait
+ ) | sort
- local ALIAS_NAME
- for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable" "$(nvm_iojs_prefix)"; do
+ (
+ local ALIAS_NAME
+ for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable"; do
+ {
+ if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && ([ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]); then
+ NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}"
+ fi
+ } &
+ done
+ wait
+ ALIAS_NAME="$(nvm_iojs_prefix)"
if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && ([ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]); then
NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}"
fi
- done
+ ) | sort
- local LTS_ALIAS
- for ALIAS_PATH in "${NVM_ALIAS_DIR}/lts/${ALIAS}"*; do
- LTS_ALIAS="$(NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_LTS=true nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}")"
- if [ -n "${LTS_ALIAS}" ]; then
- nvm_echo "${LTS_ALIAS}"
- fi
- done
+ (
+ local LTS_ALIAS
+ for ALIAS_PATH in "${NVM_ALIAS_DIR}/lts/${ALIAS}"*; do
+ {
+ LTS_ALIAS="$(NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_LTS=true nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}")"
+ if [ -n "${LTS_ALIAS}" ]; then
+ nvm_echo "${LTS_ALIAS}"
+ fi
+ } &
+ done
+ wait
+ ) | sort
return
}