#!/usr/bin/env bash
# Copyright 2022 The Tint Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -e # Fail on any error.

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )"
TOOL="$1"
BINARY="${SCRIPT_DIR}/bin/${TOOL}"

if [ ! -x "$(which go)" ] ; then
  echo "error: go needs to be on \$PATH to use $0"
  exit 1
fi

function list_tools() {
  echo "Available tools:"
  ls "${SCRIPT_DIR}/src/cmd"
}

function show_usage() {
  echo "run <tool> <args>"
  echo
  echo "builds and runs the go tool in <dawn>/tools/src/cmd"
  echo
  list_tools
  exit 1
}

if [ -z "${TOOL}" ]; then
  show_usage
fi

if [ ! -d "${SCRIPT_DIR}/src/cmd/${TOOL}" ]; then
  show_usage
fi

# Rebuild the binary.
# Note, go caches build artifacts, so this is quick for repeat calls
pushd "${SCRIPT_DIR}/src" > /dev/null
    go build -o "${BINARY}" "./cmd/${TOOL}"
popd > /dev/null

"${BINARY}" "${@:2}"
