zuul-jobs/roles/ensure-rust/templates/rust-wrap-setup.sh.j2
Ian Wienand 67ae84ce39 ensure-rust: rework global install
I think the secondary "rustup default" was intended to make sure the
Zuul user sets up to use the installed rust toolchain
(I32f9b285904a7036f9a80ada8a49fa9cf31b5163) but actually results in a
re-download of components and another local installation.  This isn't
really the intention, and also doubles the time spent installing.

From the linked comment, it seems like we're not doing our global
install correctly; even putting it in /usr doesn't avoid the need for
RUST_HOME to be set.  Take it's suggestion and install out-of-the-way
in /opt, use a small /usr/local/bin wrapper to call with correct env
vars set and then setup the installed global binary names to be called
via that.

Change-Id: I28ef747b809a17664305bfd9754022251390647b
2021-10-04 11:43:22 +11:00

17 lines
373 B
Django/Jinja

#!/bin/bash
cat <<'EOF' > /usr/local/bin/rust-wrap
#!/bin/sh
RUSTUP_HOME={{ ensure_rust_rustup_path }} exec {{ ensure_rust_rustup_path }}/bin/${0##*/} "$@"
EOF
chmod 0755 /usr/local/bin/rust-wrap
for f in {{ ensure_rust_rustup_path }}/bin/*
do
name=$(basename ${f})
echo "Install link for ${name}"
ln -f /usr/local/bin/rust-wrap /usr/local/bin/${name}
done