# Source this file to have hscloud tools available in your PATH after running
# `bazel run //tools:install`.

if [ "$0" == "$BASH_SOURCE" ]; then
    echo "You should be sourcing this."
    exit 1
fi

hscloud_root="$( cd "$(dirname "$BASH_SOURCE")"; pwd -P )"
if [ ! -f "$hscloud_root/WORKSPACE" ]; then
    echo "Could not find WORKSPACE"
    exit 1
fi
hscloud_path="$hscloud_root/bazel-bin/tools:$hscloud_root/bazel-bin/cluster/tools"
[[ ":$PATH:" != *":$hscloud_path:"* ]] && PATH="$hscloud_path:${PATH}"
unset -f hscloud_root
unset -f hscloud_path

if command -v clang &> /dev/null && [ -z $HSCLOUD_NIX ]; then
    # if we have clang, use it
    # avoids weird PATH issues with linkers, eg https://github.com/bazelbuild/bazel/issues/18834
    export CC=clang
fi

# Leftover junk. This should be removed, as env.sh is now optional.
# Do _not_ add more aliases!
alias bajzel=bazel
gpg-unlock() {
    echo "test" | gpg2 --sign --batch --no-tty -o /dev/null
}
