#!/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

# 'target' is the output directory
rm -rf $DIR/target
mkdir $DIR/target
mkdir $DIR/target/deb

# default build number to 1 if not found
if [ -z "$BUILD_NUMBER" ]; then
    BUILD_NUMBER="1"
fi

GEM_VERSION="0.1.${BUILD_NUMBER}"

# by putting these gems in vendor/cache, bundle will see them when running 'bundle install'
mkdir -p vendor/cache
cp ../db/target/ruby_package/jam_db-${GEM_VERSION}.gem vendor/cache/ || { echo "unable to copy jam-db gem"; exit 1; }
cp ../pb/target/ruby/jampb/jampb-${GEM_VERSION}.gem vendor/cache/ || { echo "unable to copy jam-pb gem";  exit 1; }
cp ../ruby/jam_ruby-${GEM_VERSION}.gem vendor/cache/ || { echo "unable to copy jam-ruby gem"; exit 1; }

# put all dependencies into vendor/bundle
#rm -rf vendor/bundle -- let checkins config 'wipe workspace' decide this
echo "updating dependencies"

bundle install --path vendor/bundle
#bundle update


if [ -z $SKIP_TESTS ]; then
    echo "running rspec tests"
    bundle exec rspec

    if [ "$?" = "0" ]; then
        echo "tests completed"
    else
        echo "tests failed."
        exit 1
    fi
fi

if [ -n "$PACKAGE" ]; then
    if [ -z "$BUILD_NUMBER" ]; then
       echo "BUILD NUMBER is not defined"
       exit 1
    fi

    echo "$BUILD_NUMBER" > BUILD_NUMBER 

    type -P dpkg-architecture > /dev/null

    if [ "$?" = "0" ]; then
        ARCH=`dpkg-architecture -qDEB_HOST_ARCH`
    else
        echo "WARN: unable to determine architecture."
        ARCH=`all`
    fi

    set -e
    # cache all gems local, and tell bundle to use local gems only
    #bundle install --path vendor/bundle --local
    
    # create debian using fpm 
    bundle exec fpm -s dir -t deb -p target/deb/websocket-gateway_0.1.${BUILD_NUMBER}_${ARCH}.deb -n "websocket-gateway" -v "0.1.$BUILD_NUMBER" --prefix /var/lib/websocket-gateway --after-install $DIR/script/package/post-install.sh --before-install $DIR/script/package/pre-install.sh --before-remove $DIR/script/package/pre-uninstall.sh --after-remove $DIR/script/package/post-uninstall.sh Gemfile lib bin vendor .bundle config script BUILD_NUMBER

fi


echo "build complete"

