#!/usr/bin/env bash

BUILD_DIR=$1
CACHE_DIR=$2
LP_DIR=$(cd $(dirname $0); cd ..; pwd)
DEFAULT_VERSION="0.10.15"
NODE_URL="http://s3pository.heroku.com/node/v$DEFAULT_VERSION/node-v$DEFAULT_VERSION-linux-x64.tar.gz"

source $LP_DIR/bin/common.sh

# Output debug info on exit
trap cat_npm_debug_log EXIT

status "Downloading node v$DEFAULT_VERSION"
tar_download $NODE_URL $BUILD_DIR

status "Adding node and npm to \$PATH"
mv $BUILD_DIR/node-v$DEFAULT_VERSION-linux-x64 $BUILD_DIR/node
chmod +x $BUILD_DIR/node/bin/*
PATH=$PATH:$BUILD_DIR/node/bin

cd $BUILD_DIR

# Is a node version present in package.json?
DESIRED_VERSION=$(cat $BUILD_DIR/package.json | node $LP_DIR/vendor/json engines.node 2>/dev/null)
echo "DESIRED_VERSION: $DESIRED_VERSION"
if [ "$DESIRED_VERSION" != "" ]; then
  SATISFIED_VERSION=$(node $LP_DIR/vendor/semver/bin/semver $DEFAULT_VERSION -r $DESIRED_VERSION)
  echo "SATISFIED_VERSION: $SATISFIED_VERSION"
fi

status "Installing dependencies with npm"
npm install --production | indent
echo "Dependencies installed" | indent

status "Building runtime environment"
mkdir -p $BUILD_DIR/.profile.d
echo "export PATH=\"\$HOME/node/bin:$HOME/bin:\$HOME/node_modules/.bin:\$PATH\"" > $BUILD_DIR/.profile.d/nodejs.sh