#!/usr/bin/env bash source tools/hscloud/lib.sh || exit 1 function main() { # If we're not running from `bazel run/buld`, complain and re-execute # ourselves. # # We do the check fairly low level, as //tools/hscloud:lib.sh will just # fail in this case. We want to be nice. # # This is all mostly copied from the runfiles.bash snippet in # tools/hscloud/lib.sh. f=bazel_tools/tools/bash/runfiles/runfiles.bash if [ ! -e "${RUNFILES_DIR:-/dev/null}/$f" ] && \ [ ! -e "$(grep -sm1 "^$f " "${RUNFILES_MANIFEST_FILE:-/dev/null}" | cut -f2- -d' ')" ] && \ [ ! -e "$0.runfiles/$f" ] && \ [ ! -e "$(grep -sm1 "^$f " "$0.runfiles_manifest" | cut -f2- -d' ')" ] && \ [ ! -e "$(grep -sm1 "^$f " "$0.exe.runfiles_manifest" | cut -f2- -d' ')" ]; then echo "Uh-oh, looks like you didn't run this as 'bazel run //tools:install'.">&2 echo "Let me fix that for you in a few seconds - but work on your muscle memory, as we'll stop supporting this by some point.">&2 sleep 2 bazel run //tools:install -- "$@" exit $? fi cd $(hscloud::workspace_location) echo "Building hscloud tools and cluster tools..." bazel build //tools/... //cluster/tools/... local path_missing="" local path="$(hscloud::workspace_location)/bazel-bin/tools" if [[ ":$PATH:" != *":$path:"* ]]; then path_missing="$path" fi local path="$(hscloud::workspace_location)/bazel-bin/cluster/tools" if [[ ":$PATH:" != *":$path:"* ]]; then if [ -z "$path_missing" ]; then path_missing="$path" else path_missing="$path_missing:$path" fi fi if [ ! -z "$path_missing" ]; then echo "Tools built correctly, but your PATH should be updated to access them:">&2 echo ' PATH="$PATH:'$path_missing'"' echo 'Add the above line to your shell profile, or source env.sh from the root of hscloud.' else echo "Tools built correctly and in PATH. Happy hsclouding!" fi } main "$@"