

# Set TMPDIR to a reasonable default if it isn't already set, so that mktmp(1) can be
# succinctly and portably used.
if [ "x${TMPDIR}" = "x" ] ; then
  TMPDIR="/tmp"
fi

# Record the directory from which this script was run in case
# we need to re-run it as part of the autoupdate.
ORIGINAL_WORKING_DIRECTORY="$PWD"

# Keep track of the project root directory.
PROJECT_ROOT="$PWD"

# Test for running buck daemon.
BUCKD_DIR="${PROJECT_ROOT}/.buckd"
BUCKD_LOG_FILE="${BUCKD_DIR}/buckd.log"
BUCKD_PID_FILE="${BUCKD_DIR}/buckd.pid"
BUCKD_PORT_FILE="${BUCKD_DIR}/buckd.port"
BUCKD_RUNNING=0
kill -0 `cat "$BUCKD_PID_FILE" 2> /dev/null` &> /dev/null || BUCKD_RUNNING=1

# Navigate to the root of the Buck project.
pushd "$BUCK_BIN_DIRECTORY" > /dev/null
pushd .. > /dev/null
BUCK_DIRECTORY="$PWD"

# If there is a .buckversion file in the project root, then make sure that Buck is at that version.
# The only way to override this is to include a .nobuckcheck file in the project root.
if [ -e "${PROJECT_ROOT}/.nobuckcheck" ]; then
  echo >&2 ":::"
  echo >&2 "::: '.nobuckcheck' file is present.  Not updating buck"
  echo >&2 ":::"
elif [ -e "${PROJECT_ROOT}/.buckversion" ]; then
  BUCK_COMMIT_HASH_AND_BRANCH=`cat ${PROJECT_ROOT}/.buckversion`

  BUCK_REQUIRED_VERSION=`echo ${BUCK_COMMIT_HASH_AND_BRANCH} | awk -F':' '{print $1}'`
  BUCK_REQUIRED_BRANCH=`echo ${BUCK_COMMIT_HASH_AND_BRANCH} |  awk -F':' '{print $2}'`

  # If the hash is in not in the user's repository, do a `git fetch`.
  if ! git cat-file -e "$BUCK_REQUIRED_VERSION"; then
    if [ -e "${BUCK_REQUIRED_BRANCH}" ]; then
      git fetch --all
    else
      git fetch origin $BUCK_REQUIRED_BRANCH
    fi
  fi


  BUCK_CURRENT_VERSION=`git rev-parse HEAD`
  
  # Note that this test succeeds if you have local changes in your Buck repository that have not
  # been committed.
  if [ "$BUCK_REQUIRED_VERSION" != "$BUCK_CURRENT_VERSION" ]; then
    echo "Buck is at ${BUCK_CURRENT_VERSION},"
    echo "but should be ${BUCK_REQUIRED_VERSION}."
    echo "Buck is updating itself."
    echo "To disable this, add a '.nobuckcheck' file to your project root."
    echo "In general, you should only disable this if you are developing Buck."

    # Now that the version is guaranteed to be in the user's repository,
    # checkout that hash.
    git checkout $BUCK_REQUIRED_VERSION

    # Now that we have updated the repository, we should rebuild Buck.
    ant clean
  fi
fi

# Make sure that Buck has been built.
if [ ! -e "build/buck.jar" ]; then

  if [ $BUCKD_RUNNING -eq 0 ] && [ -e "$BUCKD_PID_FILE" ]; then
    echo "Killing buckd before building buck"
    kill `cat "$BUCKD_PID_FILE"` || true
  fi
 
  echo "No sign of buck.jar -- building Buck!"
  # Note the jar file will not be used,
  # but serves to represent whether everything has been built.
  ant clean && ant

  if [ $BUCKD_RUNNING -eq 0 ] && [ -e "${BUCK_BIN_DIRECTORY}/buckd" ]; then
    echo "Restarting buckd after building buck"
    "${BUCK_BIN_DIRECTORY}/buckd"
  fi

  # Rerun command with new version of buck.
  cd "$ORIGINAL_WORKING_DIRECTORY"
  "$SOURCE" "$@"
  exit $?

fi


# Get current buck version.
BUCK_REPOSITORY_DIRTY=0
BUCK_CURRENT_VERSION="N/A"
BUCK_VERSION_TIMESTAMP=-1
if [ -d ".git" ]; then
  # Make sure buck gets passed the right version.
  BUCK_CURRENT_VERSION=`git rev-parse HEAD`
  BUCK_VERSION_TIMESTAMP=`git log --pretty=format:%ct -1 HEAD`

  # if the output of "git status -s" is non-empty.
  if [ -n "`git status -s`" ]; then
    BUCK_REPOSITORY_DIRTY=1
  fi
fi

# Compute a version string that uniquely incorporates the current git revision
# and local modifications (if any) to managed files that are relevant to
# building/running the buck application.
if [ "x${BUCK_REPOSITORY_DIRTY}" = "x0" ] ; then
  BUCK_VERSION_UID="${BUCK_CURRENT_VERSION}"
else
  if [ -d ".git" ] ; then
    # Get git tree for current revision.
    git_tree_in=`git log -n1 --pretty=format:%T HEAD`

    # Generate git tree as it would exist if current local changes were
    # committed.
    git_tree_out=$(
      git_index_file=`mktemp ${TMPDIR}/buck-git-index.XXXXXX` || exit 1
      export GIT_INDEX_FILE="${git_index_file}"
      git read-tree ${git_tree_in} || exit 1
      git update-index --add --remove `git diff --name-only HEAD` || exit 1
      git write-tree || exit 1
      rm -f "${git_index_file}"
    )

    # Compute UID based on relevant portions of the output git tree.
    buck_version_uid_input=`mktemp "${TMPDIR}/buck-version-uid-input.XXXXXX"` || exit 1
    git ls-tree --full-tree ${git_tree_out} > ${buck_version_uid_input} || exit 1
    BUCK_VERSION_UID=`git hash-object ${buck_version_uid_input}` || exit 1
    rm -f "${buck_version_uid_input}"
  else
    BUCK_VERSION_UID="N/A"
  fi
fi
  
# Pop back to the original directory.
popd > /dev/null
popd > /dev/null

# Path to Python interpreter will be tried to find. If not found, Jython will be used.
PYTHON_INTERP_FALLBACK=${BUCK_DIRECTORY}/bin/jython

# Note that if $RELATIVE_PATH_TO_BUCK_PY changes, then the default value of
# com.facebook.buck.json.BuildFileToJsonParser#PATH_TO_BUCK_PY 
# needs to be updated.
RELATIVE_PATH_TO_BUCK_PY=src/com/facebook/buck/parser/buck.py
PATH_TO_BUCK_PY="${BUCK_DIRECTORY}/$RELATIVE_PATH_TO_BUCK_PY"

# Run Buck "unpacked": specifying its individual classpath elements rather than from a
# single monolithic JAR file that includes all of its dependencies. This speeds up Buck development
# because `ant compile` takes much less time to rebuild Buck than `ant jar` does.
BUCK_JAVA_CLASSPATH="${BUCK_DIRECTORY}/src:\
${BUCK_DIRECTORY}/build/classes:\
${BUCK_DIRECTORY}/lib/args4j.jar:\
${BUCK_DIRECTORY}/lib/ddmlib-r21.jar:\
${BUCK_DIRECTORY}/lib/guava-15.0.jar:\
${BUCK_DIRECTORY}/lib/ini4j-0.5.2.jar:\
${BUCK_DIRECTORY}/lib/jackson-annotations-2.0.5.jar:\
${BUCK_DIRECTORY}/lib/jackson-core-2.0.5.jar:\
${BUCK_DIRECTORY}/lib/jackson-databind-2.0.5.jar:\
${BUCK_DIRECTORY}/lib/jsr305.jar:\
${BUCK_DIRECTORY}/lib/nailgun-server-0.9.2-SNAPSHOT.jar:\
${BUCK_DIRECTORY}/lib/sdklib.jar:\
${BUCK_DIRECTORY}/third-party/java/asm/asm-debug-all-4.1.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/astyanax-cassandra-1.56.38.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/astyanax-core-1.56.38.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/astyanax-thrift-1.56.38.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/cassandra-1.2.3.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/cassandra-thrift-1.2.3.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/commons-cli-1.1.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/commons-codec-1.2.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/commons-lang-2.6.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/high-scale-lib-1.1.2.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/joda-time-2.2.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/libthrift-0.7.0.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/log4j-1.2.16.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/slf4j-api-1.7.2.jar:\
${BUCK_DIRECTORY}/third-party/java/astyanax/slf4j-log4j12-1.7.2.jar:\
${BUCK_DIRECTORY}/third-party/java/jetty/jetty-all-9.0.4.v20130625.jar:\
${BUCK_DIRECTORY}/third-party/java/jetty/servlet-api.jar:\
${BUCK_DIRECTORY}/third-party/java/neo4j/geronimo-jta_1.1_spec-1.1.1.jar:\
${BUCK_DIRECTORY}/third-party/java/neo4j/lucene-core-3.6.2.jar:\
${BUCK_DIRECTORY}/third-party/java/neo4j/neo4j-kernel-2.0.0-M05.jar:\
${BUCK_DIRECTORY}/third-party/java/neo4j/neo4j-lucene-index-2.0.0-M05.jar:\
${BUCK_DIRECTORY}/third-party/java/xz-java-1.3/xz-1.3.jar:\
"

BUCK_JAVA_ARGS="\
-XX:MaxPermSize=256m \
-Xmx1000m \
-Djava.awt.headless=true \
-Dbuck.testrunner_classes=${BUCK_DIRECTORY}/build/testrunner/classes \
-Dbuck.abi_processor_classes=${BUCK_DIRECTORY}/build/abi_processor/classes \
-Dbuck.path_to_emma_jar=${BUCK_DIRECTORY}/third-party/java/emma-2.0.5312/out/emma-2.0.5312.jar \
-Dbuck.test_util_no_tests_dir=true \
-Dbuck.path_to_python_interp=${PYTHON_INTERP_FALLBACK} \
-Dbuck.path_to_buck_py=${PATH_TO_BUCK_PY} \
-Dbuck.path_to_intellij_py=${BUCK_DIRECTORY}/src/com/facebook/buck/command/intellij.py \
-Dbuck.git_commit=${BUCK_CURRENT_VERSION} \
-Dbuck.git_commit_timestamp=${BUCK_VERSION_TIMESTAMP} \
-Dbuck.git_dirty=${BUCK_REPOSITORY_DIRTY} \
-Dbuck.quickstart_origin_dir=${BUCK_DIRECTORY}/src/com/facebook/buck/cli/quickstart/android \
-Dbuck.version_uid=${BUCK_VERSION_UID} \
-Dbuck.buckd_dir=${BUCKD_DIR} \
-Dlog4j.configuration=file:${BUCK_DIRECTORY}/config/log4j.properties \
${BUCK_EXTRA_JAVA_ARGS}"

# To debug BUCK, set BUCK_DEBUG_MODE in your environment to anything non-empty,
# then connect to port 8888.
if [ "$BUCK_DEBUG_MODE" ]; then
  arg="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8888"
  BUCK_JAVA_ARGS="$BUCK_JAVA_ARGS $arg"
fi
