scripts: Add script to install rust toolchains

Change-Id: Id9405af86a4431f1176ba8eaa5f2d96584cb6c48
diff --git a/install-rust-toolchain.sh b/install-rust-toolchain.sh
new file mode 100755
index 0000000..b524aca
--- /dev/null
+++ b/install-rust-toolchain.sh
@@ -0,0 +1,29 @@
+#! /bin/bash
+# Install the rust toolchain to specified version and variant
+
+if [[ "$#" -ne 3 || $1 == "--help" ]]; then
+  echo "Usage: install-rust-toolchain.sh <rust dir> <build version|rust-toolchain path> <target>"
+  exit 1
+fi
+
+RUST_DIR=$1
+
+BUILD_TOOLCHAIN=$2
+TARGET=$3
+
+RUSTUP_BIN="${RUST_DIR}/bin/rustup"
+
+mkdir -p "${RUST_DIR}"
+
+if [[ ! -f "${RUSTUP_BIN}" ]]; then
+  bash -c 'curl https://sh.rustup.rs -sSf | sh -s -- -y --no-modify-path'
+fi
+
+if [[ -f "${BUILD_TOOLCHAIN}" ]]; then
+  BUILD_PROJECT=$(dirname $(realpath "${BUILD_TOOLCHAIN}"))
+  echo "Build rust toolchain specified for project ${BUILD_PROJECT}..."
+  cd "${BUILD_PROJECT}"; "${RUSTUP_BIN}" target add "${TARGET}"
+else
+  echo "Build specified toolchain ${BUILD_TOOLCHAIN}..."
+  "${RUSTUP_BIN}" "+${BUILD_TOOLCHAIN}" target add "${TARGET}"
+fi