From e546149f7b01a5fc3779118d3b8ceaa9d3ab3bfc Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 13 Aug 2016 21:15:12 -0700 Subject: [PATCH] =?UTF-8?q?[New]=20add=20`nvm=20cache`=20with=20=E2=80=9Cd?= =?UTF-8?q?ir=E2=80=9D=20and=20=E2=80=9Cclean=E2=80=9D=20commands.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - cache the nvm cache on travis --- .gitignore | 3 +-- .travis.yml | 1 + nvm.sh | 36 ++++++++++++++++++++++++++++++++---- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 57f44a7..fc578cc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ HEAD -bin -src +.cache v* alias diff --git a/.travis.yml b/.travis.yml index e891e22..7598244 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ addons: cache: directories: - $HOME/.stack + - $TRAVIS_BUILD_DIR/.cache before_install: - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL - curl --version diff --git a/nvm.sh b/nvm.sh index 55c963c..e10084f 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1640,9 +1640,9 @@ nvm_download_artifact() { local tmpdir if [ "${KIND}" = 'binary' ]; then - tmpdir="${NVM_DIR}/bin/${SLUG}" + tmpdir="$(nvm_cache_dir)/bin/${SLUG}" else - tmpdir="${NVM_DIR}/src/${SLUG}" + tmpdir="$(nvm_cache_dir)/src/${SLUG}" fi command mkdir -p "${tmpdir}/files" || ( nvm_err "creating directory ${tmpdir}/files failed" @@ -1975,6 +1975,10 @@ nvm_check_file_permissions() { return 0 } +nvm_cache_dir() { + nvm_echo "${NVM_DIR}/.cache" +} + nvm() { if [ $# -lt 1 ]; then nvm --help @@ -2043,6 +2047,8 @@ nvm() { nvm_echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' nvm_echo ' nvm unload Unload `nvm` from shell' nvm_echo ' nvm which [] Display path to installed node version. Uses .nvmrc if available' + nvm_echo ' nvm cache dir Display path to the cache directory for nvm' + nvm_echo ' nvm cache clear Empty cache directory for nvm' nvm_echo nvm_echo 'Example:' nvm_echo ' nvm install v0.10.32 Install a specific version number' @@ -2056,6 +2062,26 @@ nvm() { nvm_echo ;; + "cache" ) + case "${1-}" in + dir) nvm_cache_dir ;; + clear) + local DIR + DIR="$(nvm_cache_dir)" + if command rm -rf "${DIR}" && command mkdir -p "${DIR}"; then + nvm_echo 'Cache cleared.' + else + nvm_err "Unable to clear cache: ${DIR}" + return 1 + fi + ;; + *) + >&2 nvm --help + return 127 + ;; + esac + ;; + "debug" ) local ZSH_HAS_SHWORDSPLIT_UNSET ZSH_HAS_SHWORDSPLIT_UNSET=1 @@ -2353,9 +2379,11 @@ nvm() { fi # Delete all files related to target version. + local CACHE_DIR + CACHE_DIR="$(nvm_cache_dir)" command rm -rf \ - "${NVM_DIR}/bin/${SLUG_BINARY}/files" \ - "${NVM_DIR}/src/${SLUG_SOURCE}/files" \ + "${CACHE_DIR}/bin/${SLUG_BINARY}/files" \ + "${CACHE_DIR}/src/${SLUG_SOURCE}/files" \ "${VERSION_PATH}" 2>/dev/null nvm_echo "${NVM_SUCCESS_MSG}"