#!/bin/bash
# Copyright 2023 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.

#### CATEGORY=Build
### Run the bazel-tool script in the Fuchsia Bazel workspace.

## usage: fx bazel-tool <command> ...
##
## Runs the `bazel-tool` script inside the Fuchsia Bazel workspace.
## This script provides many commands to help developers perform useful
## queries easily. Use --help for details.
##

source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/vars.sh || exit $?
fx-config-read

if [[ ! -d "${FUCHSIA_BUILD_DIR}" ]]; then
  fx-error "No Fuchsia build directory, please run `fx set` or `fx gen`."
fi

source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/lib/bazel_utils.sh || exit $?
fx-update-bazel-workspace

"${PREBUILT_PYTHON3_DIR}/bin/python3" "${FUCHSIA_DIR}"/scripts/bazel-tool \
    --workspace="${BAZEL_WORKSPACE}" \
    --bazel="$(fx-get-bazel)" \
    --buildifier="${PREBUILT_BUILDIFIER}" \
     "${@}"
