#!/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 rather than sourcing
source "${BUCK_BIN_DIRECTORY}/buck_common"

# If a buck daemon is running, use it.
BUCK_CLIENT="${BUCK_DIRECTORY}/build/ng"
if [ $BUCKD_RUNNING -eq 0 ] && [ -e "$BUCK_CLIENT" ]; then

  echo "Using buckd." 1>&2

  BUCKD_PORT=`cat ${BUCKD_DIR}/buckd.port`

  # Disable exit on error as exit code 2 is used to indicate the daemon is busy.
  set +e
  $BUCK_CLIENT --nailgun-port $BUCKD_PORT com.facebook.buck.cli.Main "$@"
  BUCKD_STATUS=$?
  set -e

  # If buck daemon is not busy, return exit code.
  if [ $BUCKD_STATUS -ne 2 ]; then
      exit $BUCKD_STATUS
  fi

  echo "Daemon is busy, starting new buck process." 1>&2

fi

# Daemon is not running, or is busy so start buck process.
java \
$BUCK_JAVA_ARGS \
-Dbuck.daemon=false \
-classpath \
$BUCK_JAVA_CLASSPATH \
com.facebook.buck.cli.Main "$@"
