#!/bin/bash
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Halt on use of undeclared variables.
set -o nounset

# Set up the environment
readonly TEST_DIR="$(mktemp -d)"
if [[ ! -d "${TEST_DIR}" ]]; then
  echo >&2 "Failed to create temporary directory"
  exit 1
fi

readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
readonly FUCHSIA_DIR="$(dirname "$(dirname "$(dirname "${SCRIPT_DIR}")")")"
readonly BUILD_DIR="foo"
readonly TEST_BUILD_DIR="${TEST_DIR}/${BUILD_DIR}"

readonly ENV="FUCHSIA_DIR=${TEST_DIR}"

ln -s \
  "${FUCHSIA_DIR}/scripts" \
  "${TEST_DIR}"

cat <<END >> "${TEST_DIR}/.config"
FUCHSIA_BUILD_DIR='${BUILD_DIR}'
FUCHSIA_ARCH='x64'
END

mkdir -p "${TEST_BUILD_DIR}"
cat <<END >> "${TEST_BUILD_DIR}/args.gn"
target_cpu = "x64"
use_goma = false
END

ln -s \
  "${FUCHSIA_DIR}/buildtools" \
  "${TEST_DIR}"

cat <<END >> "${TEST_BUILD_DIR}/build.ninja"
rule touch
  command = touch \$out
build foo.o: touch
END

# Invoke `fx build`.
env -i "${ENV}" "${FUCHSIA_DIR}/scripts/fx" build

declare RETURN_CODE

if [[ -f "${TEST_BUILD_DIR}/foo.o" ]]; then
  echo "SUCCESS"
  RETURN_CODE=0
else
  echo "FAILURE"
  RETURN_CODE=1
fi

# Clean up
rm -rf -- "${TEST_DIR}"

exit "${RETURN_CODE}"
