diff options
Diffstat (limited to 'examples/shell/lib.sh')
-rwxr-xr-x | examples/shell/lib.sh | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/examples/shell/lib.sh b/examples/shell/lib.sh index 495ef3d422..c70918aef0 100755 --- a/examples/shell/lib.sh +++ b/examples/shell/lib.sh @@ -14,12 +14,28 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -eu - -# This allows the script to be both a binary and a library script. If our binary has defined -# RUNFILES then we use it, otherwise we look for our own runfiles. -RUNFILES=${RUNFILES:-$0.runfiles/io_bazel} +set -euo pipefail +# --- begin runfiles.bash initialization --- +if [[ ! -d "${RUNFILES_DIR:-/dev/null}" && ! -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then + if [[ -f "$0.runfiles_manifest" ]]; then + export RUNFILES_MANIFEST_FILE="$0.runfiles_manifest" + elif [[ -f "$0.runfiles/MANIFEST" ]]; then + export RUNFILES_MANIFEST_FILE="$0.runfiles/MANIFEST" + elif [[ -f "$0.runfiles/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then + export RUNFILES_DIR="$0.runfiles" + fi +fi +if [[ -f "${RUNFILES_DIR:-/dev/null}/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then + source "${RUNFILES_DIR}/bazel_tools/tools/bash/runfiles/runfiles.bash" +elif [[ -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then + source "$(grep -m1 "^bazel_tools/tools/bash/runfiles/runfiles.bash " \ + "$RUNFILES_MANIFEST_FILE" | cut -d ' ' -f 2-)" +else + echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash" + exit 1 +fi +# --- end runfiles.bash initialization --- function showfile { - cat "${RUNFILES}/examples/shell/data/file.txt" + cat "$(rlocation io_bazel/examples/shell/data/file.txt)" } |