aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUebelAndre <github@uebelandre.com>2024-02-19 09:45:55 -0800
committerGitHub <noreply@github.com>2024-02-19 17:45:55 +0000
commitb1fc85232d17c95d7f558adc3607a99871db9553 (patch)
tree3154ad4b0720385c8e0127d8b69e03f351e5466d
parent184da7d4ecac0f6c60f291d502e45f4829faa9d3 (diff)
downloadbazelbuild-rules_rust-b1fc85232d17c95d7f558adc3607a99871db9553.tar.gz
Update crates_universe render script to run from Bazel (#2492)
-rw-r--r--crate_universe/DEVELOPMENT.md2
-rw-r--r--crate_universe/tools/BUILD.bazel5
-rwxr-xr-xcrate_universe/tools/vendor.sh (renamed from util/vendor.sh)8
3 files changed, 13 insertions, 2 deletions
diff --git a/crate_universe/DEVELOPMENT.md b/crate_universe/DEVELOPMENT.md
index 5f52ded0..a146daac 100644
--- a/crate_universe/DEVELOPMENT.md
+++ b/crate_universe/DEVELOPMENT.md
@@ -38,5 +38,5 @@ A lot of crates are vendored into this repo, e.g. in examples and tests. To
re-vendor them all, a bash script is provided:
```sh
-./util/vendor.sh
+bazel run //crate_universe/tools:vendor
```
diff --git a/crate_universe/tools/BUILD.bazel b/crate_universe/tools/BUILD.bazel
index 1677d9e7..cc897fb7 100644
--- a/crate_universe/tools/BUILD.bazel
+++ b/crate_universe/tools/BUILD.bazel
@@ -5,3 +5,8 @@ filegroup(
],
visibility = ["//crate_universe:__subpackages__"],
)
+
+sh_binary(
+ name = "vendor",
+ srcs = ["vendor.sh"],
+)
diff --git a/util/vendor.sh b/crate_universe/tools/vendor.sh
index 79abf4a5..8fe934f8 100755
--- a/util/vendor.sh
+++ b/crate_universe/tools/vendor.sh
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
+set -euo pipefail
+
# A script to re-vendor all vendors crates in this repository.
# This should be ran whenever any crate rendering changes.
@@ -15,7 +17,11 @@ vendor_workspace() {
popd >/dev/null
}
-workspaces="$(find -type f -name WORKSPACE.bazel -o -name WORKSPACE -o -name MODULE.bazel)"
+if [[ -n "${BUILD_WORKSPACE_DIRECTORY:-}" ]]; then
+ cd "${BUILD_WORKSPACE_DIRECTORY:-}"
+fi
+
+workspaces="$(find . -type f -name WORKSPACE.bazel -o -name MODULE.bazel)"
for workspace in $workspaces
do