#!/bin/sh

set -e

node_version="$1"

if [ "$node_version" == "" ]; then
  echo "usage: $0 VERSION"
  exit 1
fi

if [ "$AWS_ID" == "" ]; then
  echo "must set AWS_ID"
  exit 1
fi

if [ "$AWS_SECRET" == "" ]; then
  echo "must set AWS_SECRET"
  exit 1
fi

if [ "$S3_BUCKET" == "" ]; then
  echo "must set S3_BUCKET"
  exit 1
fi

basedir="$( cd -P "$( dirname "$0" )" && pwd )"

# make a temp directory
tempdir="$( mktemp -t node_XXXX )"
rm -rf $tempdir
mkdir -p $tempdir
cd $tempdir

# download and extract node
curl http://nodejs.org/dist/v${node_version}/node-v${node_version}.tar.gz -o node.tgz
tar xzvf node.tgz

# go into node dir
cd node-v${node_version}

# build and package nodejs for heroku
vulcan build -v -o $tempdir/node-${node_version}.tgz

# upload nodejs to s3
$basedir/aws/s3 put $S3_BUCKET \
  nodejs-${node_version}.tgz $tempdir/node-${node_version}.tgz

# go into scons
cd tools/scons

# package scons
scons_version=$(ls | grep "scons-local" | cut -d- -f3)
tar czvf $tempdir/scons-${scons_version}.tgz *

# upload scons to s3
$basedir/aws/s3 put $S3_BUCKET \
  scons-${scons_version}.tgz $tempdir/scons-${scons_version}.tgz

# generate manifest
$basedir/manifest nodejs
