#!/usr/bin/env bash
set -e

ZULIP_PATH="$(dirname "$0")/../.."
ZULIP_SRV="/srv"
if [ "$TRAVIS" ] ; then
    ZULIP_SRV="/home/travis"
fi
YARN_BIN="$ZULIP_SRV/zulip-yarn/bin/yarn"
node_version=6.6.0
yarn_version=0.27.5

current_node_version="none"
if hash node 2>/dev/null; then
    current_node_version="$(node --version)"
fi

if [ "$($YARN_BIN --version 2>/dev/null)" = "$yarn_version" ] && [ "$current_node_version" = "v$node_version" ]; then
    echo "Node version $node_version and yarn version $yarn_version are already installed."
    exit 0
fi

if [ "$current_node_version" != "v$node_version" ]; then
    export NVM_DIR=/usr/local/nvm
    if ! [ -e "$NVM_DIR/nvm.sh" ]; then
        wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
    fi

    source "$NVM_DIR/nvm.sh"
    nvm install "$node_version" && nvm alias default "$node_version"
    export NODE_BIN="$(nvm which default)"

    # Fix messed-up uid=500 and group write bits produced by nvm
    n=$(which node)
    n=${n%/bin/node}
    chown -R root:root "$n"
    chmod -R go-w "$n"

    # Install node wrapper to /usr/local/bin
    cp "$ZULIP_PATH/scripts/setup/node-wrapper" /usr/local/bin/node
    sed -i "s|NODE_PATH|$NODE_BIN|" /usr/local/bin/node
fi

# Install yarn if not installed
bash "$ZULIP_PATH/scripts/lib/third/install-yarn.sh" "$ZULIP_SRV" --version "$yarn_version"
