diff options
Diffstat (limited to 'third_party/rust/pin-project-lite/ci/install-component.sh')
-rw-r--r-- | third_party/rust/pin-project-lite/ci/install-component.sh | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/third_party/rust/pin-project-lite/ci/install-component.sh b/third_party/rust/pin-project-lite/ci/install-component.sh new file mode 100644 index 0000000000..943755c5b2 --- /dev/null +++ b/third_party/rust/pin-project-lite/ci/install-component.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -euo pipefail + +component="${1}" + +if ! rustup component add "${component}" 2>/dev/null; then + # If the component is unavailable on the latest nightly, + # use the latest toolchain with the component available. + # Refs: https://github.com/rust-lang/rustup-components-history#the-web-part + target=$(curl -sSf "https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/${component}") + echo "'${component}' is unavailable on the default toolchain, use the toolchain 'nightly-${target}' instead" + + rustup update "nightly-${target}" --no-self-update + rustup default "nightly-${target}" + + echo "Query rust and cargo versions:" + rustup -V + rustc -V + cargo -V + + rustup component add "${component}" +fi + +echo "Query component versions:" +case "${component}" in + clippy | miri) cargo "${component}" -V ;; + rustfmt) "${component}" -V ;; +esac |