#!/bin/bash

# allow version specification if not initialised originally
acceptVersion node $1

local PACKAGE_VERSION=${APP_VERSIONS[node]}
local PACKAGE_SOURCE=http://nodejs.org/dist/v$PACKAGE_VERSION/node-v$PACKAGE_VERSION.tar.gz

# check that a node version is specified
[[ ! $PACKAGE_VERSION ]] && abort "node version not set"

# don't run the install process if we are in use mode
if [ ! $BASHINATE_USE ]; then
	hash g++ 2> /dev/null || require packages build-essential

	# if we don't have the latest node version, then install
	log "Checking Node version $PACKAGE_VERSION installed";
	if [ ! -e $BASHINATE_INSTALL/node/$PACKAGE_VERSION ]
	then
		log "Installing Node.js version $PACKAGE_VERSION"

		fetchSource $PACKAGE_SOURCE
		cd $BASHINATE_SOURCE/node-v$PACKAGE_VERSION

		# configure 
		log "- configuring"
		./configure --prefix=$BASHINATE_INSTALL/node/$PACKAGE_VERSION ||
			abort "!!! Unable to configure node build"

		# make and install
		log "- compiling and installing"
		make && make install ||
			abort "!!! Unable to make node $PACKAGE_VERSION"
	fi
fi

# initialise the node path for local scripts
export NODE_PATH=$BASHINATE_INSTALL/node/$PACKAGE_VERSION

# link binaries if that option is enabled
includePath node/$PACKAGE_VERSION/bin
# linkBinaries node/$PACKAGE_VERSION/bin node npm