From 54476476abddbe82ed6e292599eb144722d9eb9b Mon Sep 17 00:00:00 2001 From: Joe Lencioni Date: Thu, 28 Jul 2016 09:16:10 -0700 Subject: [PATCH] Use subshells for installation and upgrade instructions I recently upgraded my copy of nvm and I was disappointed to be dropped in the .nvm directory at the end of it. I also didn't like having to copy and paste two separate blocks of code into my terminal, because I missed the second one the first time around and was left in a slightly confusing state. So, I decided to make this easier by utilizing subshells and moving all of the instructions into one code block in this document. I think this will improve people's experience maintaining this tool. --- README.markdown | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/README.markdown b/README.markdown index 165fbf1..830af53 100644 --- a/README.markdown +++ b/README.markdown @@ -81,16 +81,18 @@ which should output 'nvm' if the installation was successful. Please note that ` For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in `~/.nvm`. -Or if you have `git` installed, then just clone it, and check out the latest version: +Or if you have `git` installed: + +1. clone this repo +1. check out the latest version +1. activate nvm by sourcing it from your shell ```sh -git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` -``` - -To activate nvm, you need to source it from your shell: - -```sh -. ~/.nvm/nvm.sh +( + git clone https://github.com/creationix/nvm.git ~/.nvm + cd ~/.nvm + git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` +) && . ~/.nvm/nvm.sh ``` Add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: @@ -103,16 +105,19 @@ export NVM_DIR="$HOME/.nvm" ### Manual upgrade -For manual upgrade with `git`, change to the `$NVM_DIR`, pull down the latest changes, and check out the latest version: +For manual upgrade with `git`: + +1. change to the `$NVM_DIR` +1. pull down the latest changes +1. check out the latest version +1. activate the new version ```sh -cd "$NVM_DIR" && git fetch origin && git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` -``` - -After upgrading, don't forget to activate the new version: - -```sh -. "$NVM_DIR/nvm.sh" +( + cd "$NVM_DIR" + git fetch origin + git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin` +) && . "$NVM_DIR/nvm.sh" ``` ## Usage