#!/usr/bin/env 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.

set -eo pipefail

usage() {
  echo "usage: ${0} [options] {arm64, x64}"
  echo
  echo "  -d [dir]        Source directory (default: /tmp/linux-tests)."
  echo "  -o [image]      Output location for the built image."
  echo "  -u              Update before building."
  exit 1
}

declare UPDATE="${UPDATE:-false}"
declare -r LINUX_GUEST_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
declare -r FUCHSIA_DIR=$(git rev-parse --show-toplevel)

while getopts "d:o:u" OPT; do
  case $OPT in
  d) TESTS_DIR="${OPTARG}";;
  o) IMAGE_OUT="${OPTARG}";;
  u) UPDATE="true";;
  *) usage;;
  esac
done
shift $((OPTIND - 1))

case "${1}" in
arm64)
  declare -r ARCH=arm64;;
x64)
  declare -r ARCH=x64;;
*)
  usage;;
esac

declare -r TESTS_DIR=${TESTS_DIR:-/tmp/linux-tests}

if [ ! -d "${TESTS_DIR}" ]; then
  git clone --depth 1 https://zircon-guest.googlesource.com/linux-tests "${TESTS_DIR}"
elif [[ "${UPDATE}" = "true" ]]; then
  pushd "${TESTS_DIR}"
  git pull --depth 1
  popd
fi

pushd "${TESTS_DIR}"
./build.sh -f ${FUCHSIA_DIR} "${ARCH}"
popd

if [ -n "${IMAGE_OUT}" ]; then
  mkdir -p $(dirname "${IMAGE_OUT}")
  cp "${TESTS_DIR}/out/linux-tests-${ARCH}.img" "${IMAGE_OUT}"
fi
