Skip to content
Snippets Groups Projects
nvm_init.sh 1.72 KiB
#!/bin/bash
# ======================================================================
#
# NVM INIT
#
# This is a helper tool for build processes with nodejs.
# It installs nvm and offers a method to remove nvm again.
#
# ----------------------------------------------------------------------
# 2019-06-18  first lines  <axel.hahn@iml.unibe.ch>
# ======================================================================

# ----------------------------------------------------------------------
# CONFIG
# ----------------------------------------------------------------------
NVM_REPO=https://github.com/nvm-sh/nvm.git


# ----------------------------------------------------------------------
# FUNCTIONS
# ----------------------------------------------------------------------
function nvmremove(){
    echo "REMOVE NVM ..."

    if [ -z $NVM_DIR ]; then
        echo ERROR: sorry, NVM_DIR is empty.
        exit 1
    fi

    echo -n "Removing NVM from build directory: [$NVM_DIR] ..."
    rm -rf "$NVM_DIR" || exit 3
    echo OK

    echo -n "unload ... "
    nvm unload || exit 2
    echo OK
}

# ----------------------------------------------------------------------
# MAIN
# ----------------------------------------------------------------------

echo
echo ===== NVM INIT =====
echo 

if [ -z $DIR_APPROOT ]; then
    echo ERROR: this script runs in a onbuilt process only.
    echo Currently here is no DIR_APPROOT to define a temporary working dir.
    exit 1
fi

# INSTALL NVM ... see
# https://github.com/nvm-sh/nvm#manual-install
export NVM_DIR="$DIR_APPROOT/.nvm" && (
  git clone $NVM_REPO "$NVM_DIR"
  cd "$NVM_DIR"
  git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`
) && . "$NVM_DIR/nvm.sh" || exit 1