blob: 9aaa5ce3fdbe5f0af96b76671032568c8f04fd74 [file] [log] [blame]
#!/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"
. ci/install-rust.sh "nightly-${target}"
rustup component add "${component}"
fi
case "${component}" in
rustfmt) "${component}" -V ;;
*) cargo "${component}" -V ;;
esac