#!/bin/bash
# Download and run Boulder instance for integration testing

# ugh, go version output is like:
# go version go1.4.2 linux/amd64
GOVER=`go version | cut -d" " -f3 | cut -do -f2`

# version comparison
function verlte {
  #OS X doesn't support version sorting; emulate with sed
  if [ `uname` == 'Darwin' ]; then
    [ "$1" = "`echo -e \"$1\n$2\" |  sed 's/\b\([0-9]\)\b/0\1/g' \
      | sort | sed 's/\b0\([0-9]\)/\1/g' | head -n1`" ]
  else
    [  "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ]
  fi
}

if ! verlte 1.5 "$GOVER" ; then
  echo "We require go version 1.5 or later; you have... $GOVER"
  exit 1
fi

set -xe

# `/...` avoids `no buildable Go source files` errors, for more info
# see `go help packages`
go get -d github.com/letsencrypt/boulder/...
cd $GOPATH/src/github.com/letsencrypt/boulder
# goose is needed for ./test/create_db.sh
wget https://github.com/jsha/boulder-tools/raw/master/goose.gz && \
  mkdir $GOPATH/bin && \
  zcat goose.gz > $GOPATH/bin/goose && \
  chmod +x $GOPATH/bin/goose
./test/create_db.sh
go run cmd/rabbitmq-setup/main.go -server amqp://localhost
# listenbuddy is needed for ./start.py
go get github.com/jsha/listenbuddy
cd -

