Skip to content

Instantly share code, notes, and snippets.

@greyd
Created April 4, 2015 21:26
Show Gist options
  • Save greyd/afb583c9cc28ab8baff1 to your computer and use it in GitHub Desktop.
Save greyd/afb583c9cc28ab8baff1 to your computer and use it in GitHub Desktop.
#!/bin/bash
NPM_RC=~/.npmrc
BASH_RC=~/.bashrc
NODE_VERSION="v0.12.2"
TMP_DIR="$HOME/tmp"
ARCHIVE_NAME="node-$NODE_VERSION-linux-x64.tar.gz"
DIR_NAME="node-$NODE_VERSION"
DEST_FOLDER="$HOME/env"
function addtopath {
if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
PATH="${PATH:+"$PATH:"}$1"
echo "export PATH=$PATH" >> "$BASH_RC"
source "$BASH_RC"
fi
}
function createIfNotExists {
if [ ! -d "$1" ]; then
mkdir -p "$1"
fi
}
createIfNotExists "$TMP_DIR"
createIfNotExists "$DEST_FOLDER"
wget "http://nodejs.org/dist/$NODE_VERSION/$ARCHIVE_NAME" -P "$TMP_DIR"
cd "$TMP_DIR"
tar -xzf "$ARCHIVE_NAME"
mv "${ARCHIVE_NAME%.*.*}" "$DIR_NAME"
mv "$DIR_NAME" "$DEST_FOLDER"
rm -r "$TMP_DIR"
NODE_MODULES="$DEST_FOLDER/$DIR_NAME/node_modules"
NODE_MODULES_BIN="$NODE_MODULES/bin"
createIfNotExists "$NODE_MODULES_BIN"
echo prefix = "$NODE_MODULES" >> "$NPM_RC"
addtopath "$DEST_FOLDER/$DIR_NAME/bin"
addtopath "$NODE_MODULES_BIN"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment