#!/bin/bash

# Exit on error.
set -e

# $BUCK_BIN_DIRECTORY is the directory that hosts this script. Solution taken from:
# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
SOURCE="${BASH_SOURCE[0]}"
DIR="$( dirname "$SOURCE" )"
while [ -h "$SOURCE" ]
do 
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
  DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd )"
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
BUCK_BIN_DIRECTORY=$DIR

# Set environment and update buck if required.
# TODO(user): refactor buck_common in to functions that can be called
source "${BUCK_BIN_DIRECTORY}/buck_common"

# Kill any existing buckd process.
if [ $BUCKD_RUNNING -eq 0 ]; then
  echo "Killing existing buckd process"
  kill `cat $BUCKD_PID_FILE 2> /dev/null` &> /dev/null || true
fi

# Find an unused port.
for BUCKD_PORT in $(seq 2000 65000); do
  nc -z localhost $BUCKD_PORT &> /dev/null || break
done

# Persist port.
mkdir -p "$BUCKD_DIR" &> /dev/null || true
echo $BUCKD_PORT > "$BUCKD_PORT_FILE"

# Run buckd.
BUCKD_CLIENT_TIMEOUT_MILLIS=10000
java \
$BUCK_JAVA_ARGS \
-classpath \
${BUCK_JAVA_CLASSPATH} \
com.martiansoftware.nailgun.NGServer \
localhost:${BUCKD_PORT} $BUCKD_CLIENT_TIMEOUT_MILLIS \
&> $BUCKD_LOG_FILE &
echo $! > "$BUCKD_PID_FILE"
