#!/bin/bash

if [ "X" == "X$GITHUB_USER" ]; then echo "Need GITHUB_USER environment variable"; exit 10; fi
if [ "X" == "X$GITHUB_PASSWORD" ]; then echo "Need GITHUB_PASSWORD environment variable"; exit 10; fi
if [ "X" == "X$GITHUB_EMAIL" ]; then echo "Need GITHUB_EMAIL environment variable"; exit 10; fi
if [ "X" == "X$HOME" ]; then echo "Need HOME environment variable"; exit 10; fi
if [ "X" == "X$NPM_USER" ]; then echo "Need NPM_USER environment variable"; exit 10; fi
if [ "X" == "X$NPM_EMAIL" ]; then echo "Need NPM_EMAIL environment variable"; exit 10; fi
if [ "X" == "X$NPM_PASSWORD" ]; then echo "Need NPM_PASSWORD environment variable"; exit 10; fi

cd $HOME

git clone --recursive https://$GITHUB_USER:$GITHUB_PASSWORD@github.com/virtdb/virtdb-proto.git virtdb-proto
if [ $? -ne 0 ]; then echo "Failed to clone virtdb-proto repository"; exit 10; fi
echo Creating build

echo >>$HOME/.netrc
echo machine github.com >>$HOME/.netrc
echo login $GITHUB_USER >>$HOME/.netrc
echo password $GITHUB_PASSWORD >>$HOME/.netrc
echo >>$HOME/.netrc

cd $HOME/virtdb-proto

git --version
git config --global push.default simple
git config --global user.name $GITHUB_USER
git config --global user.email $GITHUB_EMAIL

gyp --depth=. -fmake proto.gyp
make 
if [ $? -ne 0 ]; then echo "Failed to make FDW"; exit 10; fi

VERSION=`npm version patch`
BUILDNO=$VERSION
echo $VERSION
git add package.json
if [ $? -ne 0 ]; then echo "Failed to add package.json to patch"; exit 10; fi
git commit -am"new release: $VERSION"
git push
git tag -f $BUILDNO
if [ $? -ne 0 ]; then echo "Failed to tag repo"; exit 10; fi
git push origin $BUILDNO
if [ $? -ne 0 ]; then echo "Failed to push tag to repo."; exit 10; fi

# -- npm thingies
npm set init.author.name "$NPM_USER"
npm set init.author.email "$NPM_EMAIL"
npm set init.author.url "http://www.virtdb.com"

expect -f npm_login_expect.exp $NPM_USER $NPM_PASSWORD "$NPM_EMAIL"
if [ $? -ne 0 ]; then echo "NPM login Failed."; exit 10; fi
npm publish ./
if [ $? -ne 0 ]; then echo "Failed to push tag to repo."; exit 10; fi

RELEASE_PATH="$HOME/build-result/virtdb-proto-$BUILDNO"
mkdir -p $RELEASE_PATH

cp -rf lib $RELEASE_PATH/

pushd $RELEASE_PATH/..
tar cvfj virtdb-proto-${BUILDNO}.tbz virtdb-proto-$BUILDNO
rm -Rf virtdb-proto-$BUILDNO
popd

