npm: update with simpler logic

This commit is contained in:
Marc Cornellà 2018-07-01 23:18:15 +02:00 committed by GitHub
commit 69676a874f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,44 +1,12 @@
(( $+commands[npm] )) && {
# Check if ZSH_CACHE_DIR is set.
# If not, proceeds to find any existing directories containing npm_completion.
# If can't find any, defaults to ZSH_CACHE_DEFAULT_DIR and sets ZSH_CACHE_DIR accordingly.
if [ !${ZSH_CACHE_DIR} ]; then
# Default cache directory in case none was found containing npm_completion file.
ZSH_CACHE_DEFAULT_DIR="${HOME}/.oh-my-zsh/cache"
__NPM_COMPLETION_FILE="${ZSH_CACHE_DIR:-$ZSH/cache}/npm_completion"
# List of directories to look for npm_completion file.
ZSH_CACHE_POSSIBLE_DIR=(
"${HOME}/.oh-my-zsh/cache"
"${HOME}/.zsh/cache"
"${HOME}/.antigen/bundles/robbyrussell/oh-my-zsh/cache"
"${HOME}/.tmp/cache"
)
# Loop list of possible cache directories containing npm_completion file
# and set ZSH_CACHE_DIR to the first found.
for d in "${ZSH_CACHE_POSSIBLE_DIR[@]}"; do
# Exits loop if previous iteration already found an existing ${d}/npm_completion
# & already set ZSH_CACHE_DIR to ${d}.
[ ${ZSH_CACHE_DIR} ] && break
# If current exists then sets ZSH_CACHE_DIR to it
[ -f "${d}/npm_completion" ] && ZSH_CACHE_DIR=${d}
done
# If ZSH_CACHE_DIR still not set, then set to ZSH_CACHE_DEFAULT_DIR.
[ -z ${ZSH_CACHE_DIR} ] && ZSH_CACHE_DIR=${ZSH_CACHE_DEFAULT_DIR}
fi
__NPM_COMPLETION_FILE="${ZSH_CACHE_DIR}/npm_completion"
if [ ! -f $__NPM_COMPLETION_FILE ]; then
if [[ ! -f $__NPM_COMPLETION_FILE ]]; then
npm completion >! $__NPM_COMPLETION_FILE 2>/dev/null
[ $? -ne 0 ] && rm -f $__NPM_COMPLETION_FILE
[[ $? -ne 0 ]] && rm -f $__NPM_COMPLETION_FILE
fi
[ -f $__NPM_COMPLETION_FILE ] && source $__NPM_COMPLETION_FILE
[[ -f $__NPM_COMPLETION_FILE ]] && source $__NPM_COMPLETION_FILE
unset __NPM_COMPLETION_FILE
}