aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples/shell/lib.sh
diff options
context:
space:
mode:
Diffstat (limited to 'examples/shell/lib.sh')
-rwxr-xr-xexamples/shell/lib.sh28
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)"
}